3

私は solr で階層を使用してファセットを実装する方法を見つけようとしていますが、私の状況でそれを行う方法がわかりません。パッチ 64 と 792 の解決策とともに、solr で階層を行うことに関する記事をいくつか読みました。私が抱えている主な問題は、階層の複数のブランチに属するエンティティがあることです。私のデータの現在の形式は、国、州、市の MVA を含むユーザー ドキュメントです。

たとえば、人々が都市レベルまでサービスをリストできる地理的階層を考えてみましょう。人はアラバマ州全体にサービスを提供できますが、ジョージア州の特定の町にのみサービスを提供できます. 現在、州レベルのファセット カウントは、アラバマ州が 1、ジョージア州が 1 であるエリアにサービスを提供する個別の個人をカウントし、都市レベルにまで拡張すると、各都市のカウントがあります (つまり、都市の合計)カウントは相互に排他的ではないため、状態カウントと必ずしも一致しません)。

米国(1)
ジョージア(1)
アトランタ(1)
コロンバス(0)
アテネ(0)
アラバマ(1)
モビール(1)
バーミンガム(1)
ハンツビル(1)

私がハングアップしている部分は、ユーザーがアラバマとジョージアの両方にリストされており、属性をそれぞれに関連付ける方法がわからないため、それらがどの州に属しているかを知る方法がない都市にファセットするときです。他の。solr-64 は、同じドキュメントに対して US/Alabama/Mobile/ や US/Georgia/Atlanta/ などの複数のブランチをサポートしている場合に機能する可能性があります。今のところ、ナイトリービルドでコンパイルすることができなかったので、ちょっと行き詰まっています。

誰かがこれを行うためのより良い方法を持っていますか?

4

4 に答える 4

2
于 2011-01-12T18:24:32.277 に答える
1

ピボット (決定木) ファセットを確認してください: http://wiki.apache.org/solr/SimpleFacetParameters#Pivot_.28ie_Decision_Tree.29_Faceting

Solr 4.0 でサポートされています。

于 2011-01-12T13:00:17.100 に答える
1

私はあなたの問題に精通していませんが、都市、州ごとにグループ化する必要があるようです。

フィールドの折りたたみ (http://wiki.apache.org/solr/FieldCollapsing) と呼ばれる SOLR のグループ化機能を見てください。

また、bobo-browse もご覧ください。具体的には、compositeFacetHandlers http://code.google.com/p/bobo-browse/wiki/CompositeFacetHandlersです。bobo-browse は SOLR に統合できます (http://code.google.com/p/bobo-browse/wiki/SolrIntegration)

于 2011-01-11T23:02:42.863 に答える
0

インデックス内のドキュメントが単一のサービスを表していると仮定します....

都市の場合、ある種の区切り文字を使用して都市と連結された状態であるフィールドを作成します。このフィールドは、ユーザーに表示する必要はありません。保存するフィールドに追加することはできますが、実際の都市名であるインデックスは作成しないでください。

たとえば、以下の値を持つ city_facet フィールドを持つことができます。

  • 「オハイオ - マイアミ」
  • 「フロリダ - マイアミ」

おそらく、より安全な区切り文字を選択する必要があります。ハイフンは潜在的な競合になる可能性があると思います。

于 2011-01-11T22:47:30.263 に答える