基于term和基于全文的搜索

2020-04-20  本文已影响0人  7赢月

介绍

本章会详细介绍基于term和基于全文搜索,通过不同的demo,介绍两种搜索的区别。

term搜索

term:最小单位

这里对term查询做一个大小写的demo查询

// 例子1
POST /products/_search
{
  "query": {
    "term": {
      "desc": {
        "value": "iPhone"
      }
    }
  }
}
// 例子2
POST /products/_search
{
  "query": {
    "term": {
      "desc": {
         "value":"iphone"
      }
    }
  }
}

如上,因为插入的时候会对大写进行小写的修改,所以以上例1没有命中。

例1返回结果.png
例2返回结果

全文搜索

POST groups/_search
{
  "query": {
    "match_phrase": {
      "names": {
        "query": "Water Water",
        "slop": 100
      }
    }
  }
}


POST groups/_search
{
  "query": {
    "match_phrase": {
      "names": "Water Smith"
    }
  }
}

以上结果中使用了match_phrase,其中slop参数标识进行分词后词项之间的距离。

总结

本章介绍了term和全文的搜索,通过demo演示了两者的区别。

引用

https://www.elastic.co/guide/cn/elasticsearch/guide/current/slop.html

上一篇下一篇

猜你喜欢

热点阅读