【发布时间】:2018-07-27 07:55:10
【问题描述】:
我正在尝试在我的 Rails 应用程序中设置 Searchkick。
我有一个带有字段的模型:
- 数字:字符串,例如
NK4321nn1234
我需要什么:
- 搜索
1nn1应该会找到NK4321nn1234 - 搜索
1NN1不应找到NK4321nn1234
这是我的模型:
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
区分大小写的搜索不起作用。据我了解,在索引期间 searchkick 将所有nGrams 小写...但是为什么?..
问题:
- 我写的搜索方法是否正确?
- 为什么敏感搜索不起作用?
我的环境:rails 5.2.0,searchkick 3.1.0
【问题讨论】:
-
你能修改一下“我需要什么”下的内容吗,好像不对。
标签: ruby-on-rails elasticsearch searchkick