json – 使用弹性搜索搜索多个字段

前端之家收集整理的这篇文章主要介绍了json – 使用弹性搜索搜索多个字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新来的弹性搜索,我想知道如何进行搜索指定一个或多个字段.

sql我会写这个查询

"SELECT field1,field2,field3 FROM tablename WHERE field1 = 'X' AND field2 != 'Y' AND field3 = 'Z'"

在弹性搜索我从这开始:

{
    "query": {
        "filtered": {
            "query": {
                "query_string": {
                    "query": "*"
                }
            },"filter": {
                "term" : {
                    "field1" : "286"
                }
            }
        }
    }
}

解决方法

您需要为该工作选择正确的查询,这在一开始就很难.您可以一直使用布尔查询来将各种不同的查询组合在一起,就像已经建议的一样.还有一些查询允许在多个字段上执行,并在内部映射到布尔查询.此外,term queries在生产系统中并不常见,因为它们不支持任何文本分析,而您通常希望以与您要查询的字段编制索引相似的方式分析查询.

弹性搜索中最常见的查询之一是匹配查询,其在单个字段上工作.还有另外一个查询,这个选项在多个字段(也称为multi_match)上也是一样.这些查询支持文本分析,工作得很好.我建议使用它们通过query_string查询实例,这是一个更强大,但容易出错,以及由于需要的解析过程.我想说,只有在您特别需要其功能之一(例如,在查询本身中指定字段名称或布尔运算符)时,才使用query_string,否则请查找匹配项.

了解查询和过滤器之间的区别也很重要,请查看here了解更多.

并查看the query DSL可用的所有查询,并与之进行交流,只是感受到您可以做的所有不同的事情.

猜你在找的JavaScript相关文章