gpt4 book ai didi

php - Elasticsearch 中的AND OR查询

转载 作者:行者123 更新时间:2023-12-03 01:43:36 24 4
gpt4 key购买 nike

我需要根据AND或OR查询动态进行 Elasticsearch 查询。

用户输入类似于SQL格式的字符串:

((("query1 query2" OR query3) OR query4) AND (query5 OR query6)) AND query7

我将其解析为数组:
[
'AND' => [
[
'AND' => [
[
'OR' => [
[
'OR' => [
'" query1 query 2"',
'query3'
]
],
'query4'
]
],
[
'OR' => [
'query5',
'query6'
]
]
]

],
'query7'
]

]

基于这个数组,我需要搜索一个字段。

就像是:
{"bool":{"must":[{"match":{"title":"research"}},{"match":{"title":"lecturer"}}]}}

但是我被嵌套条件困住了。请指教。

最佳答案

您可以将嵌套的bool用于嵌套条件。

((("query1 query 2" OR query3) OR query4) AND (query5 OR query6)) AND query7

可以表示为:
{
"query" : {
"bool":{
"must" : [
{
"bool":{ // ((("query1 query 2" OR query3) OR query4) AND (query5 OR query6))
"must" : [
{
"bool":{ // (("query1 query 2" OR query3) OR query4)
"should" : [
{
"bool":{ // ("query1 query 2" OR query3)
"should" : [
{"match": // query1 query2},
{"match": // query3}
]
}
},
{"match": // query4}
]
}
},
{
"bool":{ // (query5 OR query6)
"should" : [
{"match": // query5},
{"match": // query6}
]
}
}
]
}
},
{match": //... query7}
]
}
}
}

关于php - Elasticsearch 中的AND OR查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682746/

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