0

索引付けされたドキュメントには、パイプで区切られた一連の ID を含むフィールドがあります。

a845497737704e8ab439dd410e7f1328|
0a2d7192f75148cca89b6df58fcf2e54|
204fce58c936434598f7bd7eccf11771

(改行は無視)

このフィールドは、タグのリストを表します。リストには、0からn 個のタグ ID を含めることができます。

サイトのユーザーが特定のドキュメントを表示するときに、関連するドキュメントのリストを表示したいと考えています。この関連ドキュメントのリストは、タグによって決定する必要があります。

  • 一致するタグが少なくとも 1 つあるドキュメントのみが「関連ドキュメント」リストに表示されます。
  • タグが最も一致するドキュメントが「関連ドキュメント」リストの一番上に表示されます。


これに WildcardQuery を使用することを考えていましたが、「*」で始まるクエリは許可されていません。


助言がありますか?

4

4 に答える 4

2

ドキュメント内で同じフィールドを複数回使用できます。この場合、| で分割することにより、インデックス時に複数の「タグ」フィールドを追加します。次に、検索するときは、「タグ」フィールドで検索するだけです。

于 2009-05-11T14:07:39.723 に答える
2

このタスクで Lucene を使用する可能性については、しばらく脇に置いておきます (私はあまり詳しくありません)。LinkDatabase をチェックアウトすることを検討してください。

Sitecore は、バックグラウンドで、アイテムへの、およびアイテムからのすべての参照を追跡します。そして、複数のタグが実際に (私が推測するに) どこかの Sitecore アイテムとして表されるタグのメタ階層から選択されているので、LinkDatabase はそれを参照しているすべてのアイテムを伝えることができます。

ある種の疑似コード モックアップでは、これは次のようになります。

タグ内の各 ID
  このタグを参照しているすべてのドキュメントを取得します
  見つかったドキュメントごとに
    master-list にドキュメントが含まれている場合。使用回数を増やす
    そうしないと; ドキュメントをマスター リストに追加する
使用回数の降順でマスター リストを並べ替える

私はもっ​​と正確ではありませんが、この段階で完全に機能する例をモックアップすることはできません.

LinkDatabase に関する記事は、http ://larsnielsen.blogspirit.com/tag/XSLTにあります。TreeListEx フィールドを使用してドキュメントにタグを付ける場合、以前のバージョンの Sitecore には既知の欠陥があることに注意してください。ここに文書化されています: http://www.cassidy.dk/blog/sitecore/2008/12/treelistex-not-registering-links-in.html

于 2009-05-11T14:57:43.477 に答える
2

パイプで区切られた一連の ID は、ドキュメントがインデックス化されたときに、実際には個々のフィールドに分割されているはずです。このようにして、目的のタグのクエリを実行し、関連性の降順で並べ替えることができます。

于 2009-05-11T14:01:51.063 に答える