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

如何在Elasticsearch中对相同字段进行精确值匹配查询?

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

如何在Elasticsearch中对相同字段进行精确值匹配查询?

您可以使用映射中的fields属性以不同的方式
分析同一字段 processNumber

例如,如果要使用ProcessNumber的经过分析和未经分析的版本,则映射为:

 {   "type_name": {      "properties": {         "processNumber": { "type": "string", "index": "not_analyzed", "fields": {    "analyzed": {       "type": "string",       "index": "analyzed"    } }         }      }   }}

在查询中将未分析的字段称为 processNumber

要引用该字段的分析视图,请使用 processNumber.analyzed

查询术语11 / 201、11等将是:

示例过滤器:

 { "query" : { "filtered" : { "filter" : { "term" : { "processNumber" : "11/2014" } } } } }

术语过滤器不分析搜索字符串,因此在这种情况下,输入将与字段倒排索引匹配:11/2014针对该字段。

示例Match_Phrase_prefix:

{ "query": { "match_phrase_prefix": { "processNumber": "11/201" } } }

match_phrase_prefix尝试检查短语中的最后一项是否为index中各项的前缀。如果指定了分析器,它将分析搜索字符串。这就是您需要在此处使用该字段的未
分析 版本的原因。如果我们使用 processNumber.analyzed 搜索查询,例如 11-201,11 | 201 也将匹配

匹配示例:

  { "query": { "match": { "processNumber.analyzed": "11" } } }

这是直接匹配,因为默认分析器(通常是标准分析器)会将11/2014标记为2014年11月。

您可以使用分析api来查看默认分析器如何分析特定文本。

curl -XPOST "http://<machine>/_analyze?text=11/2014"


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

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

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