1

searchkick と elasticsearch の統合に問題があります。これが私が今持っているものです:

Product records:
id: 1
title: "Electric Fan"

id: 2
title: "Stove"

id: 3
title: "Stoven"

id: 4
title: "Stovener"

これが私のモデルです

class Product < ActiveRecord::Base
  searchkick
end

しかし、Rails コンソールに移動して検索しようとすると、1 つの結果しか返されません。

results = Product.search("Stove")
results.map(&:title) # prints ["Stove"]

実際には3つ生成されるはずの結果が1つしか生成されない理由がわかりません。インストールして、elasticsearch が実行されていることを確認しました。

これで見逃したことはありますか?

ティア

4

1 に答える 1

2

ドキュメントを読む:

デフォルトでは、結果は単語全体と一致する必要があります。back は backpack と一致しません。この動作は次の方法で変更できます。

class Product < ActiveRecord::Base
  searchkick word_start: [:name]
end

そして検索するには(インデックスを再作成した後):

Product.search "戻る"、フィールド: [{name: :word_start}]

ソース - https://github.com/ankane/searchkick#partial-matches

于 2014-10-29T18:31:19.310 に答える