Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php elasticsearch适用于任何搜索的通用查询_Php_Jquery_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Php,Jquery,elasticsearch" /> elasticsearch,Php,Jquery,elasticsearch" />

Php elasticsearch适用于任何搜索的通用查询

Php elasticsearch适用于任何搜索的通用查询,php,jquery,elasticsearch,Php,Jquery,elasticsearch,我一直在为我的审计项目进行一般查询,该项目包含超过一百万条记录。使用我的php或jquery代码是否可以生成任何通用查询?我所能得到的就是在这里使用和、或操作符执行相同的操作: { "filter": { "AND": { "filters": [ { "term": { "age": "28"

我一直在为我的审计项目进行一般查询,该项目包含超过一百万条记录。使用我的php或jquery代码是否可以生成任何通用查询?我所能得到的就是在这里使用
操作符执行相同的操作:

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

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

我们在应用程序中采用了完全相同的方法。用户可以使用类似的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 query()构建Elasticsearch查询


在我们的格式中,否定是运算符级别的句柄(contains vs!contains),但是您可能有一组非运算符,如[“n”,[]]

在您的UI中,一件让人困惑的事情是分组。一个操作是AND,另一个是OR。那怎么行<代码>类别=123,姓名=abc或年龄=23。这应该是
(category=123和name=abc)还是(age=23)
(category=123)
(name=abc或age=23)
?是的@Mave很抱歉我没有说清楚谢谢你的更新。。。Its(类别=123,姓名=abc)或(年龄=23)。我需要一种格式,使in-1查询作为我们两个示例都能工作,并且变化最小。始终,始终?当您添加第三行是
,第四行是第五行,第五行又是
时会发生什么?首先确保你想要传达的逻辑是坚如磐石的。这只是一个例子@mave我需要一个格式,其中可以包含任意数量的AND,OR,NOT