首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只匹配弹性搜索中字符串中的第一个字母。

只匹配弹性搜索中字符串中的第一个字母。
EN

Stack Overflow用户
提问于 2013-09-12 03:44:58
回答 1查看 3K关注 0票数 1

如何返回以某个字母开头的方面的匹配?例如,Elasticsearch建议您使用查询"T*"返回以字母T开头的所有标题。然而,这似乎返回包含以字母T开头的任何单词的标题,例如“树和灌木”以及“如何普鲁恩树”。我只想归还“树木和灌木”。我试过使用"^T*",但这会返回SearchPhraseExecutionException。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-12 05:55:57

默认情况下,elasticsearch 使用默认分析器分析字段,该分析器将字段划分为一般在英语单词边界上拆分的标记。因此,“如何Prune树”被分为(“如何”、“到”、"Prune“、”树“)和标记"Trees”随后与您的查询"T*“相匹配。为了避免这种情况,您必须在对象not_analyzed中指定字段为映射。这使得elasticsearch有效地将字段值视为一个巨大的令牌,然后它将与您的前缀查询正确匹配。

您也可以签出前缀查询,但这实际上只是发出相同查询的另一种方式。您仍然需要指定在映射中不分析字段。

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

https://stackoverflow.com/questions/18754976

复制
相关文章

相似问题

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