gpt4 book ai didi

php - elasticsearch通用查询,适用于任何搜索

转载 作者:行者123 更新时间:2023-12-03 00:21:49 24 4
gpt4 key购买 nike

我对审计项目的一般查询感到困惑,该查询包含超过一百万条记录。是否有使用我的php或jquery代码生成的一般查询?我所能得到的直到这里是我使用ANDOR运算符执行的操作:

    {
"filter": {
"AND": {
"filters": [
{
"term": {
"age": "28"
}
}
]
},
"OR": {
"filters": [
{
"term": {
"name": "varsh"
}
}
]
}
}
}

有什么办法可以让我使用任何运算符和任何字段进行搜索?我的用户界面看起来像这样

最佳答案

在我们的应用程序中,我们有完全相同的方法。用户可以使用类似的UI构建自己的查询(唯一的区别是我们有子组,因此您可以拥有嵌套查询)。

我们使用AST来存储用户查询,例如:

["a",["o",[{"t":"generic.content","o":"contains","a":"@username"},{"t":"generic.content","o":"contains","a":"#username"]],["a",[{"t":"generic.content","o":"contains","a":"other thing"},{"t":"generic.content","o":"contains","a":"yet another thing"}]],["o",[{"t":"generic.lang","o":"equals_lang","a":"fr"},{"t":"generic.lang","o":"equals_lang","a":"en"}]]]

其中[“a”,[]]是具有AND运算符的组,而[“o”,[]]是具有OR运算符的组。

然后,我们使用此AST通过bool查询( http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html)动态构建Elasticsearch查询。

在我们的格式中,否定是在运算符级别上处理(包含vs!包含),但是您可以有一组NOT运算符,例如[“n”,[]]

关于php - elasticsearch通用查询,适用于任何搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182821/

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