Запрос Solr (Solr.net) с запросом с несколькими критериями и локальными параметрами

Я пытаюсь сделать это:

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
                                                  });

Я ожидаю что-то вроде

  • сделать 1 [ ] 101
  • сделать 2 [ ] 144
  • сделать 3 [х] 232
  • сделать 2 [ ] 32

Но только получить

  • сделать 3 [х] 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

Я что-то упустил или неправильно делаю?


person user1882744    schedule 06.12.2012    source источник


Ответы (1)


В вашем исходном запросе (вверху) у вас есть 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]

Не уверен, что это все, но на всякий случай можно попробовать.

person Stephen Pope    schedule 08.12.2012