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