Search 弹性搜索布尔查询
在elasticsearch中,我想执行如下逻辑查询: 假设A、B、C和D是逻辑条件(“匹配”条件)。我想要一个与此SQL查询等效的elasticsearch查询:Search 弹性搜索布尔查询,search,elasticsearch,lucene,Search,elasticsearch,Lucene,在elasticsearch中,我想执行如下逻辑查询: 假设A、B、C和D是逻辑条件(“匹配”条件)。我想要一个与此SQL查询等效的elasticsearch查询: (A OR B OR C) AND D 我想用boost 如何构造此查询的JSON?请检查。请检查。您可以使用bool查询和boost选项 正如您所说的,要在字段A、B和C之间执行或操作,您需要使用应查询最小值应匹配为1(默认值)。您还可以添加boost初始化 注意:例如,我使用了术语查询,您需要根据需要使用适当的查询以获得最佳结
(A OR B OR C) AND D
我想用boost
如何构造此查询的JSON?请检查。请检查。您可以使用
bool
查询和boost
选项
正如您所说的,要在字段A、B和C之间执行或操作,您需要使用应查询最小值应匹配为1(默认值)。您还可以添加boost
初始化
注意:例如,我使用了术语查询,您需要根据需要使用适当的查询以获得最佳结果
{
"should": [
{
"term": {
"A": "searchTerm"
}
},
{
"term": {
"B": "searchTerm"
}
},
{
"term": {
"C": "searchTerm"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
要在上述查询和另一个字段之间执行和
操作,您需要使用必须
查询添加该字段,最后bool查询如下所示
{
"bool": {
"must": [
{
"term": {
"D": "searchTerm"
}
},
{
"should": [
{
"term": {
"A": "searchText"
}
},
{
"term": {
"B": "searchText"
}
},
{
"term": {
"C": "searchText"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
]
}
}
这将执行您在问题(A | | | B | | C)和&D中提到的逻辑操作
参考资料:
您可以使用bool
查询和boost
选项
正如您所说的,要在字段A、B和C之间执行或操作,您需要使用应查询最小值应匹配为1(默认值)。您还可以添加boost
初始化
注意:例如,我使用了术语查询,您需要根据需要使用适当的查询以获得最佳结果
{
"should": [
{
"term": {
"A": "searchTerm"
}
},
{
"term": {
"B": "searchTerm"
}
},
{
"term": {
"C": "searchTerm"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
要在上述查询和另一个字段之间执行和
操作,您需要使用必须
查询添加该字段,最后bool查询如下所示
{
"bool": {
"must": [
{
"term": {
"D": "searchTerm"
}
},
{
"should": [
{
"term": {
"A": "searchText"
}
},
{
"term": {
"B": "searchText"
}
},
{
"term": {
"C": "searchText"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
]
}
}
这将执行您在问题(A | | | B | | C)和&D中提到的逻辑操作
参考资料:
您的最新示例中有一个错误。{}不应该在“应该”块附近。您最近的示例中有一个错误。{}不应该在“应该”块周围。