首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch查询文本

ElasticSearch查询文本
EN

Stack Overflow用户
提问于 2021-05-21 10:08:55
回答 2查看 28关注 0票数 0

我的索引数据是

代码语言:javascript
复制
    {
      "full_name":"Edwin Powell Hubble",
      "job": "IT"
    }
    {
      "full_name":"John Edwin",
      "job": "Accountant"
    }
    {
      "first_name":"Eric Petterson",
      "job": "Accountant"
    }

我不确定是否有人能帮助我构建一个查询,以获取以full_name作为Edwin的数据。它在term查询中尝试过似乎并不真正有效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-21 12:07:39

由于full_name可以是任意长度的,应该在索引时进行分析,所以我相信您已经将属性映射为text类型。

出于同样的原因,我还认为,在搜索“Edwin”时,您还需要返回“Edwin Powell Hubble”和“John Edwin”的结果,在搜索“Edwin Pow”时返回“Edwin Powell Hubble”

前缀应该帮助您处理这些用例。

代码语言:javascript
复制
GET /_search
{
  "query": {
    "match_phrase_prefix": {
      "full_name": "Edwin"
    }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-05-21 10:11:27

您可以使用匹配查询获取以full_name作为Edwin的数据。

代码语言:javascript
复制
{
  "query": {
    "match": {
      "full_name": "edwin"
    }
  }
}

Edwin 工作在精确的文本匹配上,因此不会为获取任何文档,因为您的示例索引数据中没有匹配 full_name as Edwin的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67634829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档