1

次のように定義されたモデルがあるとします (タイトルと説明はそれぞれ文字列フィールドとテキスト フィールドです)。

class Entity < ActiveRecord::Base
  # Skipped

  searchable do
    text :title,
    text :description
  end
end

「title:foo description:bar」のような検索クエリを使用できるようにしたいと考えています。これは、フィールドが検索基準を満たすエンティティ、つまり、タイトルに「foo」が含まれているエンティティ、および/または説明に「bar」が含まれているエンティティのみを取得することを前提としています。正確な構文は問題ではありません。

デモ アプリケーションの検索フィールドにそのようなクエリを入力しようとしましたが、明らかに結果が返されませんでした :-)

では、Sunspot クエリ パーサーはフィールド化されたクエリをサポートしていますか (用語が正しいかどうかはわかりません)?

ありがとう。

4

1 に答える 1

2

これは、Solr の edismax クエリ パーサーがサポートする必要がある機能です。ただし、Sunspot は現在、デフォルトで古い dismax クエリ パーサーを使用しています。

検索で edismax を有効にするには、searchブロックで次の行を試してください。

adjust_solr_params { |p| p[:defType] = 'edismax' }

(それは私の頭の中から外れています。構文を見逃した場合はお知らせください。)

于 2013-01-24T21:02:39.810 に答える