岄无涯 2021-05-14 12:39 采纳率: 0%
浏览 511

es使用match无法匹配到文档怎么办?

最近开始学es,发现使用match无法匹配文档,请大佬们帮忙看一下。
我想匹配张三或李四的文档,但是匹配不到。但是如果只匹配张三或只匹配李四,就能匹配到。
弄了快两天了一直没弄明白问题在哪。
 
es的版本是6.8

无结构索引创建语句:

PUT /haoke
{
  "settings": {
    "index": {
      "number_of_shards": "2",
      "number_of_replicas": "0"
    }
  }
}

数据插入语句:

POST /haoke/user/1001
{
  "id": 1001,
  "name": "张三",
  "age": 20,
  "sex": "男"
}


POST /haoke/user/
{
  "id": 1002,
  "name": "李四",
  "age": 21,
  "sex": "男"
}

查询语句:

POST /haoke/user/_search
{
  "query": {
    "match": {
      "name": "张三 李四"
    }
  }
}

 

  • 写回答

2条回答 默认 最新

  • 农夫丶果园 2021-05-14 13:25
    关注

    可能是因为你的name属性是 keyword 类型的 , keyword只能通过精确值搜索 , 你可以把name改成 text 类型试试 , text类型会被分词

    评论

报告相同问题?