2

ASP.NET MVC3 C#に基づくeコマースサイトに取り組んでいます。SolrNetを実装しました。「CategoryId」と「ProductName」のような2つのフィールドがあります。特定のCategoryIDでキーワードを検索したい。製品は複数のカテゴリにマッピングされていることに注意してください。したがって、基本的に、以下のクエリを実行してsolr adminを使用して検索しようとしていますが、正確な結果は得られませんでした。

(CategoryID:26 AND Name:Gigabyte) OR (CategoryID:118 AND Name:Gigabyte) OR (CategoryID:121 AND Name:Gigabyte)

クエリの何が問題になっていますか?限定されたカテゴリで同じ製品名を検索したい場合、クエリはどうなりますか?

4

1 に答える 1

3

あなたが示した例では、SolrのFilter Queryを利用して、CategoryID で結果を制限します。したがって、Solr 管理ページから、[クエリの作成] セクションの下にある [完全なインターフェイス] リンクをクリックし、次のように入力します。

クエリ文字列:Name:Gigabyte

フィルタ クエリ:(CategoryId:26 OR CategoryId:118 OR CategoryId:121)

次の方法で、SolrNet から同じことを行うことができます。

 ISolrOperations<Item> solr = ...
 var items = solr.Query(new SolrQueryByField("name","Gigabyte", new QueryOptions {
        FilterQueries = new ISolrQuery[] {
                new SolrQueryByField("CategoryID", 26),
                new SolrQueryByField("CategoryID", 118),
                new SolrQueryByField("CategoryID", 121),
        }
 });
于 2012-09-07T11:50:21.757 に答える