我想在Elasticsearch中搜索一个完整匹配的分析器。但Elasticsearch也提供其他包含解剖的内容。
一个例子;我想搜索"小猫",但Elasticsearch返回"小猫跳","小猫","小猫救了宝宝免于死亡& #34;等...
我只想要精确且只有小猫#34;而不是其他猫。我该怎么做这个查询?
我的内容喜欢;
{
title: "little cat",
content: "bla bla bla"
},
...
答案 0 :(得分:1)
这很大程度上取决于title
的索引方式。对于这样的要求,title
需要analyzed as keyword
,这意味着title
中的任何文字都与ES中的文字完全相同。内部Lucene倒排索引。
term
过滤器可用于搜索little cat
中title
分析为keyword
的内容。
如果您希望在索引编制时对title
字段进行其他操作,则可以add a filter,例如小写任何大写字母。但是,无论如何,你需要一个keyword
分析器。
如果您不想立即更改title
的编入方式,可以make it as multi_field
添加title_keyword
(例如)字段,该字段应使用您的索引编制索引keyword
分析器。
答案 1 :(得分:0)
索引字符串字段时,字符串的默认映射索引类型为analyzed
(类似MySQL
上的全文索引)。您应该重新创建映射并将索引类型设置为not_analyzed
。
详细了解Core Types和。{ mapping