栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ElasticSearch不返回针对字符串属性的术语查询的结果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ElasticSearch不返回针对字符串属性的术语查询的结果

您需要了解elasticsearch的分析器如何工作。分析仪进行标记化(分割的输入成一束令牌,如空白的),和一组令牌滤波器(过滤掉令牌你不想,像停止词,或修改令牌,像小写令牌滤波器,其将所有内容都转换为小写)。

在两个非常特定的时间执行分析-在索引编制期间(将内容放入elasticsearch时),以及根据查询在搜索期间(针对要搜索的字符串)。

这就是说,默认分析仪是标准分析器它由一的标准标记生成器,标准令牌滤波器(从标准标记生成器清理的令牌),小写令牌过滤,并停止字令牌滤波器。

举一个例子,当您保存字符串“ I love Vincent’s pie!”时 进入elasticsearch,并使用默认的标准分析器,实际上是在存储“
i”,“ love”,“ vincent”,“ s”,“ pie”。然后,当您尝试使用

term
查询( 未分析 )搜索“
Vincent’s”时,您将找不到任何内容,因为“ Vincent’s”不是这些标记之一!但是,如果使用
match
查询(经过 分析 )搜索“
Vincent的派” ,则会发现“我爱Vincent的派!” 因为“ vincent”和“ s”都找到匹配项。


最重要的是:

  1. match
    搜索自然语言字符串时,请使用经过分析的查询,例如。
  2. 设置分析仪以满足您的需求。您可以设置一个自定义分析器,如果您想使其变得复杂,以及执行您心中想要的任何过滤器,则可以执行空白标记器,字母标记器或模式标记器。这取决于您的用例,但是如果您要处理自然语言的句子,我不建议您这样做,因为标准标记器是为自然语言搜索而构建的。
  3. 您可以将字段设置为不使用具有以下映射关系的分析器,这应符合您的需求:
    "visitor": {"properties": {    "id": {        "type": "string"        "index": "not_analyzed"    }}

    }

有关更多信息,请参见http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis.html。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号