2

複数のタイプと単一タイプの黒点検索の長所と短所は何ですか? 好ましい方法は何ですか?

多くのドキュメントを調べましたが、答えが見つからないようです。

複数型検索の例:

Sunspot.search(Post, Comment) do
  with :blog_id, 1
  fulltext 'hello' do
    fields(:comment_body)
  end
end

別のモデル/タイプへの関連付けによる単一タイプ検索の例:

class Post < ActiveRecord::Base
  searchable do
    text :comments do
      comments.map { |comment| comment.body }
    end
end

Post.search do
  fulltext 'hello' do
    fields(:comments)
  end
end

どちらの方法(複数のタイプまたは単一のタイプ)を使用しても同じ結果が得られるようです。

4

1 に答える 1

2

複数型検索の道をたどった後、私の質問に答えられるかどうか見てみましょう。

複数型検索の短所

  • ほとんどの人が返してほしいのは、表示する結果/ヒットの均質なリストです。デフォルトですべてのタイプを検索する Sunspot.search(Type1、Type2 など) または Sunspot.search を実行すると、.results を呼び出すとデータ型が混在し、ビューに表示するのが難しくなります。
  • 投稿に多くのコメントがあり、コメントに「xyz」が含まれる投稿を見つけたい場合、Sunspot.search(Comment).results は、本当に必要な投稿のリストではなく、コメントのリストを返します。コメントの結果/ヒットで post_id を使用して投稿のリストを取得できますが、これはパフォーマンス ヒットです。
  • 複数のタイプで Sunspot.search.hits を実行して、ビューに表示する共通フィールドのリストを取得するのは困難です。
  • http://sunspot.github.com/sunspot/rails/docs/index.htmlによると、「Sunspot は、検索が 1 つまたは複数のタイプを対象としているかどうかについて完全に認識していません。唯一の制限は、列が制限、順序付けなどに使用されることです。 . は、検索されるすべてのタイプに対して同じ方法で定義されます。" 列は、すべてのタイプで同じように定義する必要があります。

したがって、これらの問題がなく、同じ結果を簡単に返すことができる、関連付けと複数のモデルへのマッピングを備えた単一タイプの検索が推奨されます。

于 2012-10-16T20:58:53.150 に答える