0

たとえば、BlogPosts のようなものに 2 つの個別のインデックスを作成して、1 つのインデックスを使用して (たとえばオートコンプリート目的で) クイック検索を実行し、もう 1 つのインデックスを本格的な検索クエリに使用できるようにするとします。

それは私がタイヤでできることですか?このようなもの(少し原始的である場合は許してください)

class Post < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

   index_name 'autocomplete'
  mapping do
      indexes :title, :analyzer => 'my_ngram_analyzer'
  end

  index_name 'main'
  mapping do 
      indexes :title
      indexes :description
      indexes :author
      indexes :published_on
  end
end

コールバックが適切なインデックスから新しい投稿を追加および削除することを知っている場所

4

1 に答える 1

1

mappingTire では、 DSL メソッドを使用して 1 つのクラスに 2 つの個別のインデックス (およびマッピング) を設定することはできません。

オートコンプリート用と検索用の 2 つの個別のインデックスを使用することをお勧めします。素晴らしいチュートリアル、StackOverflowの回答、さらにはelasticsearchプラグインもあります.

multi_fieldただし、大量のデータがない限り、タイプ、match複数のフィールドにわたるクエリ、および場合によっては NGram ベースのアナライザーを使用して、単一のインデックスでもそれを達成できます。

アプローチの概要を説明しているAutocomplete with Tireチュートリアルをご覧ください。


https://github.com/karmi/tire/issues/531からのクロスポスト

于 2012-12-04T12:06:22.920 に答える