我的弹性搜索设置是这样的
:analyzer => {
:default => {
:type => "custom",
:tokenizer => "whitespace",
:filter => ["lowercase", "standard", "my_ngram"]
}
}
其中my_gram的指定方式如下
:my_ngram => {
:type => "nGram",
:min_gram => 1,
:max_gram => 20
}
问题在于,当我搜索像“cre”这样的东西时,我会得到“婴儿床”,以及“船员”和“记住”...这似乎与“重新”和“cr”相匹配...如果匹配,我希望它与单词中的'cre'完全匹配。
我做错了什么?
答案 0 :(得分:1)
找到答案...只需在:default_operator => AND
选项中指定query_string
即可。所以这样的事情(使用Tire gem,因为我很懒)
Post.search do
query { string your_query_string_here, :default_operator => "AND" }
end