[英]How setup word_middle case-sensitive search with searchkick?
I am trying to setup Searchkick in my Rails application. 我正在尝试在我的Rails应用程序中设置Searchkick。
I have a model with fields: 我有一个模型与领域:
NK4321nn1234
数字:字符串,例如NK4321nn1234
What I need: 我需要的:
1nn1
should find NK4321nn1234
搜索1nn1
应该找到NK4321nn1234
1NN1
should NOT find NK4321nn1234
搜索1NN1
应该找不到NK4321nn1234
Here is my model: 这是我的模型:
class Product < ApplicationRecord
searchkick word_middle: [:number]
def search_data
{
number: number
}
end
def self.sensitive_search query, page
search( query,
fields: [{number: :exact}],
match: :word_middle,
misspellings: false,
page: 1,
per_page: 15
)
end
def self.insensitive_search query, page
search( query.downcase,
fields: [:number],
match: :word_middle,
misspellings: false,
page: 1,
per_page: 15
)
end
end
Case-sensitive search does not work. 区分大小写的搜索无效。 As far as I understand, searchkick downcase all nGrams
during indexing... But why?.. 据我了解,在索引nGrams
过程中searchkick将所有nGrams
转换为小写...但是为什么呢?
Questions: 问题:
My environment: rails 5.2.0, searchkick 3.1.0 我的环境:rails 5.2.0,searchkick 3.1.0
As of this commit , you can do: 从该提交开始 ,您可以执行以下操作:
class Product < ApplicationRecord
searchkick word_middle: [:number], case_sensitive: true
end
Be sure to reindex after updating Searchkick options. 确保在更新Searchkick选项后重新索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.