gpt4 book ai didi

elasticsearch - 查询两个字段,一个嵌套,一个在根上

转载 作者:行者123 更新时间:2023-12-02 22:12:08 25 4
gpt4 key购买 nike

我正在尝试编写一个在两个不同字段中搜索字符串的查询。
一个来自根,一个作为嵌套对象的一部分。

我已经尝试过这两种方法,但都没有在两个领域产生匹配。

一个 query_string从根搜索

这导致 name 上的匹配只要

注意:如果我不指定字段,它将搜索所有字段,包括我想要的两个字段。

{
"query": {
"query_string": {
"query": "searchterm",
"fields": ["name", "project.projectName"]
}
}
}

一个 query_string搜索嵌套对象

这导致 project.projectName 上的匹配只要
{
"query": {
"nested": {
"path": "project",
"query": {
"query_string": {
"query": "searchTerm",
"fields": [
"name",
"project.projectName"
]
}
}
}
}
}

最佳答案

我认为您可以通过 bool query 实现这一目标

{
"query": {
"bool": {
"should": [
{
"query_string": {
"fields": [
"name"
],
"query": "searchTerm"
}
},
{
"nested": {
"path": "project",
"query": {
"query_string": {
"query": "searchTerm",
"fields": [
"project.projectName"
]
}
}
}
}
]
}
}
}

备注 - 如果您希望搜索词在两者上都匹配,您可以替换 shouldmust

关于elasticsearch - 查询两个字段,一个嵌套,一个在根上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com