:::tips 全文检索查询的基本流程如下:

  • 对用户搜索的内容做分词,得到词条
  • 根据词条去倒排索引库中匹配,得到文档id
  • 根据文档id找到文档,返回给用户

常用场景:

  • 商城的输入框搜索
  • 百度输入框搜索

建议将参与查询的字段利用copy_to复制到一个all字段中,此时使用三个字段和使用一个all字段搜索的效果一样。但是搜索的字段越多,对查询性能影响越大,建议采用copy_to的方法,使用单字段查询all来提升性能 :::

单字段查询

:::tips 根据搜索词搜索单个字段 :::

  1. GET /索引库名/_search
  2. {
  3. "query": {
  4. "match": {
  5. "字段名": "搜索词"
  6. }
  7. }
  8. }

多字段查询

:::tips 根据搜索词搜索多个字段 :::

  1. GET /索引库名/_search
  2. {
  3. "query": {
  4. "multi_match": {
  5. "query": "搜索词",
  6. "fields": ["字段名1", "字段名2"]
  7. }
  8. }
  9. }