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

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类型会被分词

    评论

报告相同问题?

悬赏问题

  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码
  • ¥15 编写vba代码实现数据录入工作
  • ¥15 做过TCL海信电视小米电视相关影视会员软件私我