我正在尝试编写一个在两个不同字段中搜索字符串的查询。一个来自根,一个作为嵌套对象的一部分。
我已经尝试过这两种方法,但都没有在两个领域产生匹配。
甲query_string关闭根的搜索
这name只会导致匹配
注意:如果我不指定字段,它将搜索所有字段,包括我想要的两个字段。
{
"query": {
"query_string": {
"query": "searchterm",
"fields": ["name", "project.projectName"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
甲query_string断嵌套对象的搜索
这project.projectName只会导致匹配
{
"query": {
"nested": {
"path": "project",
"query": {
"query_string": {
"query": "searchTerm",
"fields": [
"name",
"project.projectName"
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为您可以通过bool 查询来实现这一点
{
"query": {
"bool": {
"should": [
{
"query_string": {
"fields": [
"name"
],
"query": "searchTerm"
}
},
{
"nested": {
"path": "project",
"query": {
"query_string": {
"query": "searchTerm",
"fields": [
"project.projectName"
]
}
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意- 如果您希望搜索词在两者上都匹配,则可以替换should为must
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |