qiwihui / blog

技术和思考,基于issues
https://qiwihui.com
43 stars 2 forks source link

Elasticsearch cheat sheet #39

Open qiwihui opened 5 years ago

qiwihui commented 5 years ago

1

curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} },
  "_source": ["account_number", "balance"],
  "sort": { "balance": { "order": "desc" } }
}'

bool must: 所有的查询都必须为真 bool should: 只要有一个查询匹配 bool must_not: 查询列表中的的所有查询都必须都不为真

2. 执行过滤器

_score: 指定的搜索查询匹配程度的一个相对度量。得分越高,文档越相关,得分越低文档的相关度越低。 Elasticsearch中的所有的查询都会触发相关度得分的计算。对于那些我们不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能。

过滤器在概念上类似于查询,但是它们有非常快的执行速度,这种快的执行速度主要有以下两个原因:

通常情况下,要决定是使用过滤器还是使用查询,你就需要问自己是否需要相关度得分。如果相关度是不重要的,使用过滤器,否则使用查询。

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "query": {
    "filtered": {
      "query": { "match_all": {} },
      "filter": {
        "range": {
          "balance": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}'

3

doc['my_field'].value和_source.my_field之间的不同:

参考