3

カテゴリとサブカテゴリの間に 2 つのレベルの階層があるアプリケーションに Solr 階層ファセットを実装したいと考えています。http://wiki.apache.org/solr/HierarchicalFaceting#Pivot_Facetsリンクに記載されているソリューションを使用したいと考えています。

フラット化されたデータは次のようになります。

Doc#1: NonFic > Law
Doc#2: NonFic > Sci
Doc#3: NonFic > Sci > Phys

また、このデータは、インデックス時に階層のレベルごとに個別のフィールドに分割する必要があります。以下同様。

索引用語

Doc#1: category_level0: NonFic; category_level1: Law
Doc#2: category_level0: NonFic; category_level1: Sci
Doc#3: category_level0: NonFic; category_level1: Sci, category_level2:Phys

誰でもこれを実装する方法を提案できますか? これを実現するために Solr スキーマを定義するにはどうすればよいですか? インデックス時に上記のようにデータを分割するための参照が見つかりませんでした。

ありがとう、

プリヤンカ

4

2 に答える 2

1

返されるドキュメントの一部としてこれらの個々のフィールドを表示する必要がありますか? その場合、フィールドの「保存された」バージョンにそれらの分割値が必要です。検索中またはファセット中にのみ必要な場合は、「保存された」フォームを無視して、「インデックス化された」フォームに集中できます。

どちらの場合でも、1 つのフィールドを複数に分割する必要がある場合は、copyField または UpdateRequestProcessor を使用して実行できます。

copyField を使用すると、「格納された」フォームはすべてのフィールドで同じになりますが、各フィールドに異なるプロセッサを使用して、階層の異なる部分を「インデックス化された」部分に選択することができます。

UpdateRequestProcessor を使用すると、1 つのフィールドを取り、それぞれがパスの一部のみを含む複数のフィールドを吐き出すカスタム プロセスを作成できます。カスタム コピーを実行するか、いくつかのフィールド コピーを実行してから、各フィールドで異なる正規表現プロセッサを実行できます。

于 2013-02-26T16:43:47.283 に答える