2012-03-12 5 views
1

Solrを使用して、フィールドから最も頻度の高い用語を「n」と表示し、類似用語がグループ化されるようにステミングを適用したい。Solrファセット検索でstemedフィールドを使用して人間が読める最も頻繁に索引付けされた用語を表示

ここでは、用語をユーザーに示す必要がありますが、語幹用語は常に人間が読めるとは限りません。それらがユーザーに表示されるように抑止されている元の用語の例を得る方法はありますか?

私たちが考えることができる唯一の解決策は、2つの異なるフィールドを取得することです.1つはステミングを使用せず、もう1つは自分自身とマッチングさせます。しかし、我々はそれが高価になると思う(2つのクエリ)とエラーが発生する可能性があります(一致がエラーを生成する可能性があります)。

Solrでこれを実装する方法はありますか?前もって感謝します。ステミング

答えて

2

はので、私はあなたが何をしようとして達成するための簡単な方法があるとは思わないクエリ時間インデックス時間の両方に適用されます。ただし、データベースの結果の数に応じて、ファセッティングとハイライトの組み合わせを使用してこれを行うことができます。ハイライトされた用語は、ステムされた用語ではなく、マッチングされた用語全体になります(例えば、ステムされた用語は "関連"かもしれませんが、強調された用語は "関連"、 "関連"、 "関連"などです)。おそらく、何を行う可能性は以下の通りです:

?q=keyword&facet=true&facet.field=myfield&&facet.limit=20hl=true&hl.fl=myfield&hl.fragsize=0&rows=10 

10行を取得し、(デフォルトで強調された結果を検討し、これらは<em></em>タグを使用して強調表示されていますがhl.simple.prehl.simple.postを使用してこれを変更することができます - 例えば、 &hl.simple.pre=[&hl.simple.post=]を使用すると、一致する用語を角括弧で囲みます)は、少なくとも「元の」一致用語のサンプルを与える必要があります。 hl.fragsize=0は、フィールド全体を強調表示とともに返します。

これが役に立ちます。ここで強調表示パラメータについて詳しく読むことができます: http://wiki.apache.org/solr/HighlightingParameters

+0

もう一度、デビッドに感謝の気持ちで答えてください。しかし、なぜこのソリューションは私のデータベースの結果の数を欲しがっていますか? – rreyes1979

+0

一致する用語のサンプルが得られ、必ずしもすべてが一致するとは限りません。強調表示では、クエリに関連する一致(返された行数を含む)のみが返されます。したがって、Solrコアに多数のレコードがある場合、このメソッドを使用して一致する用語のすべてを**取得することはできません。あなたはすべての行を返そうとすることができますが、それは表面上かなり単純なタスクのための多くのデータになります。私は自分自身をよく説明してくれることを願っています –

+0

パーフェクト。あなたの時間、経験、良い意志をありがとうございました。 – rreyes1979

関連する問題