ger*_*rky 5 search full-text-search ruby-on-rails elasticsearch elasticsearch-2.0
我想multi_match在索引中的多个字段中使用。
例如,我有这个用户索引。
Users
id
real_name
contact_name
user_name
Run Code Online (Sandbox Code Playgroud)
这些字段都使用标准分析器。因此,我想搜索这 3 个字段(real_name、contact_name、user_name),并查找至少在其中一个字段中同时具有“John”和“Peter”的用户。
我知道如果不需要 AND 部分,我可以使用 multi_match 。示例:仅搜索 John:
{
"multi_match" : {
"query": "john",
"fields": [ "real_name", "contact_name", "user_name" ]
}
}
Run Code Online (Sandbox Code Playgroud)
and但是如果我想要额外的条件我该怎么做呢?可以用 multi_match 来做到这一点吗?
使用"operator" : "AND":
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "john",
"fields": [
"real_name",
"contact_name",
"user_name"
],
"type": "cross_fields",
"operator": "AND"
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9777 次 |
| 最近记录: |