ES的查询操作

ES的查询操作

表达式查询

领域特定语言 (DSL), 指定了使用一个 JSON 请求。我们可以像这样重写之前的查询所有 Smith 的搜索 :

GET /megacorp/employee/_search

{

"query" : {

"match" : {

"last_name" : "Smith"

}

}

}

Elasticsearch 默认按照相关性得分排序,即每个文档跟查询的匹配程度。第一个最高得分的结果很明显:John Smith 的 about 属性清楚地写着 “rock climbing” 。

但为什么 Jane Smith 也作为结果返回了呢?原因是她的 about 属性里提到了 “rock” 。因为只有 “rock” 而没有 “climbing” ,所以她的相关性得分低于 John 的。

这是一个很好的案例,阐明了 Elasticsearch 如何 全文属性上搜索并返回相关性最强的结果。Elasticsearch中的 相关性 概念非常重要,也是完全区别于传统关系型数据库的一个概念,数据库中的一条记录要么匹配要么不匹配。

https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_more_complicated_searches.html

全文检索:指包含rock或climbing或rock climbing的信息

  "match" : {

            "about" : "rock climbing"

        }

精确短语搜索:指包含rock climbing的信息

"match_phrase" : {

"about" : "rock climbing"

}

猜你喜欢

转载自blog.csdn.net/qq_24265945/article/details/81015562