1

列のあるモデル製品があります:

name, number, description

このモデルに定義されたインデックスは次のようになります。

define_index do
  indexes :name, :sortable => true
  indexes :number
  indexes :description
  where "amount > 0"
  has :price
end

説明にはランダムな単語がたくさん含まれている可能性があるため、検索から除外したい場合があります(ユーザーがchceckboxをクリックした場合は「説明を検索しないでください」)。

私はスフィンクスのページに行き、次のことを見つけました:

@(name, number) *pencil* *123*

そして、スフィンクスがどのように機能するのか理解していないようです。検索を実行すると

*pencil* *123*

名前に「鉛筆」、数字に「123」という単語があり、1つの結果が得られます。しかし、私が実行すると

@(name, number) *pencil* *123*

結果が見つかりません。

列による検索はどういうわけか異なりますか?

4

2 に答える 2

2

一致モードを使用している場合にのみフィールドを検索でき:extendedます-ThinkingSphinxを使用すると、これが自動的に設定されます:conditions-しかし、マルチフィールドクエリを自分で作成しているため、これが発生しないのはなぜですか。これを試して:

Product.search "@(name, number) *pencil* *123*", :match_mode => :extended

お役に立てれば。

于 2010-08-03T03:17:47.050 に答える
2

それはすべてスペースについてでした:/これは機能します:

@(name,number) *pencil* *123*
于 2010-11-03T08:53:07.467 に答える