0

私が取り組んでいる小さなプロジェクトでは、全文検索エンジンとして Ferret を使用しています。

ドキュメントとオンラインのいくつかの例を通じて、フルテキスト インデックスを使用してタグ クラウド ジェネレーターをまとめ、IndexReader.termsメソッドを使用したタグ クラウドの生成を支援することができました。

検索結果に基づいて用語データを取得したい場合、これまでのところ非常にうまく機能しています。

たとえば、ユーザーが「ケーキ」を検索した場合、「ケーキ」という用語に関連して使用される用語のタグ クラウドを表示したいと考えています。

termsメソッドを検索結果セットなどと関連付けて使用できる例を探していますか?

現在、次の方法を使用してタグのリストを生成しています。

reader = Ferret::Index::IndexReader.new(Scrape.find_last_index_version)
terms = []
reader.terms(:all_quotes).each do |term, doc_freq|
    terms << [term, doc_freq]
end

乾杯。

4

1 に答える 1

0

タグ クラウドというよりは用語頻度チャート (wordle のような) のようなものですか? それとも、これらはタグ フィールドにありますか? いずれにせよ、インデックスは可能な各ドキュメント サブセット (検索結果など) 内の用語の頻度を追跡しないため、そのメソッドが存在したとしても高速ではありません。1 つのドキュメントについて、TermFreqVector を取得し、そのドキュメント内の他の頻繁な用語によく一致する推奨ドキュメントを提供できます。したがって、上位の結果のいくつかを取得し、それぞれから用語ベクトルを取得して、それらを合計することができますが、これらの集計関数はネイティブには存在しません (通常、それらは低速の操作をそこに入れないようにします)。

于 2009-12-16T15:12:15.383 に答える