1

カスタムインデックスを使用してSitecoreSearchを使用して、アイテムをフィルタリングおよび検索しようとしています。

アイテムは製品レビューであり、すべてProductReviewテンプレートとともに1つのフォルダーに保存されます。

+ Reviews
    - Sample Review 1
    - Sample Review 2
    - Sample Review 3

ユーザーは、カテゴリ、サブカテゴリでアイテムをフィルタリングし、製品名で検索することができます。したがって、フォームは次のようになります。

Category:     [ Drop Down ]
Sub Category: [ Drop Down ]
Product name: [ Single line of Text ]

[ Search Button ]

インデックスを定義するためのドキュメントが非常に薄いことがわかりました。次のプロパティを使用してインデックスを設定しようとしています。

  • インデックスWebデータベース
  • 必要なのはこれらの3つのフィールドだけなので、これらの3つのフィールドのみを含める必要があります。
  • レビューテンプレートに基づくアイテムのみがインデックスに登録されます
  • 2つのカテゴリフィールドをトークン化する必要はありません
  • カテゴリフィールドでフィルタリングできます

カスタムアナライザーまたはDatabaseCrawlerが必要かどうかはわかりませんが、作成することはまったく検討していません。

これは私がこれまでに持っているものですが、私はまだ実用的なインデックスを作成していません:

<index id="reviews" type="Sitecore.Search.Index, Sitecore.Kernel">

    <param desc="name">$(id)</param>
    <param desc="folder">reviews</param>
    <Analyzer ref="search/analyzer" />

    <include hint="list:IncludeField">
        <!-- Category -->
        <fieldId>Category</fieldId>

        <!-- Sub Category -->
        <fieldId>Sub Category</fieldId>

        <!-- Product Name -->
        <fieldId>Product Name</fieldId>

    </include>

    <locations hint="list:AddCrawler">
        <web type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
            <Database>web</Database>

            <!-- {GUID} -->
            <Root>{GUID}</Root>

            <Tags>web reviews</Tags>
            <IndexAllFields>false</IndexAllFields>

            <templates hint="list:AddTemplate">

                < !-- Product Review -- >
                <reviews>Product Review</reviews>

            </templates>
        </web>
    </locations>

</index>    

任意のポインタをいただければ幸いです。

編集

私が探している2つの主なものは次のとおりです。

  • トークン化せずにカテゴリフィールドにインデックスを付ける方法。
  • Lucine.netAPIでそれを使用してフィルタリングする方法。
4

1 に答える 1

4

SitecoreSearchContrib (別名 Advanced Database Crawler) ライブラリを使用すると、インデックス作成と検索の両方でこれがはるかに簡単になります。ライブラリには、設定方法をより明確にするサンプル構成が含まれています。

SitecoreSearchContrib を使用しない場合でも、いくつかの初期ポインター:

  • この機能がプレビュー モードで機能するように、master にもインデックスを作成する必要があります。上記のライブラリは、コードが実行されているコンテキストに基づいて、正しいデータベースを自動的に検索します。
  • インデックスに含まれるテンプレートは、テンプレート GUID である必要があります。
  • フィールドの包含も GUID にする必要があります。
于 2013-03-23T15:55:46.040 に答える