如何使用 searchkick 设置 word_middle 区分大小写的搜索?

How setup word_middle case-sensitive search with searchkick?

我正在尝试在我的 Rails 应用程序中设置 Searchkick。

我有一个带有字段的模型:

我需要的:

这是我的模型:

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 downcase all nGrams during indexing...但为什么呢?..

问题:

我的环境:rails5.2.0,searchkick 3.1.0

this commit 起,您可以:

class Product < ApplicationRecord
  searchkick word_middle: [:number], case_sensitive: true
end

请务必在更新 Searchkick 选项后重新编制索引。