Elasticsearch完全匹配pharse

时间:2015-01-19 12:21:43

标签: elasticsearch

我想在Elasticsearch中搜索一个完整匹配的分析器。但Elasticsearch也提供其他包含解剖的内容。

一个例子;我想搜索"小猫",但Elasticsearch返回"小猫跳","小猫","小猫救了宝宝免于死亡& #34;等...

我只想要精确且只有小猫#34;而不是其他猫。我该怎么做这个查询?

我的内容喜欢;

{
    title: "little cat",
    content: "bla bla bla"
},
...

2 个答案:

答案 0 :(得分:1)

这很大程度上取决于title的索引方式。对于这样的要求,title需要analyzed as keyword,这意味着title中的任何文字都与ES中的文字完全相同。内部Lucene倒排索引。

term过滤器可用于搜索little cattitle分析为keyword的内容。

如果您希望在索引编制时对title字段进行其他操作,则可以add a filter,例如小写任何大写字母。但是,无论如何,你需要一个keyword分析器。

如果您不想立即更改title的编入方式,可以make it as multi_field添加title_keyword(例如)字段,该字段应使用您的索引编制索引keyword分析器。

答案 1 :(得分:0)

索引字符串字段时,字符串的默认映射索引类型为analyzed(类似MySQL上的全文索引)。您应该重新创建映射并将索引类型设置为not_analyzed

详细了解Core Types和。{ mapping