2

私はこれをやろうとしています:

http://solr:8080/solr/select/?q=name_make:[make]+name_model:[model]&rows=10000&wt=json&fq={!tag=dt}name_model:[model]&facet=on&facet.field={!ex=dt}name_model&facet.sort=count&facet.field.mincount=1

solr.netで-私はこれを持っています:

var multipleQuery = new SolrMultipleCriteriaQuery(queryList, "AND");
var Facets = new FacetParameters();

Facets.Queries.Add(new SolrFacetFieldQuery(new LocalParams{{"ex", "dt"}} +"name_model") { MinCount = 1, Sort = true});

 List<ISolrQuery> filter = new List<ISolrQuery>();
 filter.Add(new LocalParams { { "tag", "dt" }, { "mincount", "1" } } + Query.Field("name_model").Is(NameModel));

var result = solr.Query(multipleQuery, new QueryOptions
                                                  {
                                                      FilterQueries = filter,
                                                      Rows = rows,
                                                      Facet = facets, 
                                                      Start = index
                                                  });

私は次のようなものを期待しています

  • make 1 [] 101
  • make 2 [] 144
  • 3[x]232を作成します
  • 2を作る[]32

しかし、得るだけ

  • 3[x]232を作成します

私の痕跡から私は見る

  • Solr q(name_make:[make] AND name_model:[model] AND price:[0 TO 250000] AND year_registration:[0 TO 10000000])0,023619 0,000006
  • Solr fq {!tag = dt mincount = 1} name_model:A3

私は作品を見逃していますか、それとも間違った方法でそれについて行っていますか?

4

2 に答える 2

0

元のクエリ (上部) ではq=name_make:[make]+name_model:[model]、下にあるname_make:[make] **AND** name_model:[model] ため、デフォルトの演算子に問題がある可能性があります。&& の代わりに「+」演算子を使用して、SolrNet を使用してこれを保持できます。

..new SolrQuery("name_make:[make]") + new SolrQuery("name_model:[model]")

..あなたを返します:name_make:[make] name_model:[model]

一方 ..

new SolrQuery("name_make:[make]") && new SolrQuery("name_model:[model]")

..あなたを返します:name_make:[make] AND name_model:[model]

それがそれであるかどうかはわかりませんが、念のため試してみてください。

于 2012-12-08T16:15:10.027 に答える
0
Please try to pass the string arraty that contains multiple field names and search text in the below method. I will return the solrnet query for search with multiple filed name with OR condition.

public ISolrQuery BuildQuery(string[] SearchFields, string SearchText)
    {

        AbstractSolrQuery firstQuery = new SolrQueryByField(parameters.SearchFields[0], SearchText) { Quoted = false };
        for (var i = 1; i < SearchFields.Length; i++)
        {
            firstQuery = firstQuery || new SolrQueryByField(SearchFields[i], SearchText) { Quoted = false };
        }

        return firstQuery;
    }
于 2017-10-11T14:15:59.487 に答える