Как правильно выполнить запрос dismax с помощью solrnet? - PullRequest
1 голос
/ 20 мая 2011

Я знаю, что мне нужно добавить следующий код, чтобы изменить на dismax.

ExtraParams = new Dictionary<string, string> { {"qt", "dismax"} }

Но как мне передать значения "qf"?Я пробовал это безрезультатно:

new Dictionary<string, string> { {"qt", "dismax"},{"qf","field1 field2"} }

и

var matchingItems = solr.Query(new LocalParams {{"type", "dismax"},{"qf","field1 field2"}} 
+ BuildQuery(parameters) ...

Даже передав только ExtraParams, я получаю неверный запрос 404.

Это зарегистрированные запросы

Локальные параметры + дополнительные параметры

GETting 'q={!type=dismax qf='field1 field2'}query text, start=0, rows=10,
spellcheck=true, facet=true, facet.field=especialidadefacet,
f.especialidadefacet.facet.mincount=1, facet.field=tipofacet,
f.tipofacet.facet.mincount=1, facet.field=estadofacet, f.estadofacet.facet.mincount=1,
qt=dismax' from '/select'

только дополнительные параметры

GETting 'q=query text, start=0, rows=10, spellcheck=true, facet=true,
facet.field=especialidadefacet, f.especialidadefacet.facet.mincount=1,
facet.field=tipofacet, f.tipofacet.facet.mincount=1, facet.field=estadofacet,
f.estadofacet.facet.mincount=1, qt=dismax' from '/select'

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Параметр qt выбирает обработчик запроса. Так что если у вас нет обработчика запросов с именем dismax и вы определяете qt=dismax, вы получите 404.

Так что либо определите qt = dismax и обработчик запроса 'dismax', либо, в качестве альтернативы, просто используйте анализатор запросов dismax через LocalParams.

0 голосов
/ 26 мая 2015

(очень поздний ответ, но стоит того, кто сюда приземлится)

Попробуйте использовать локальные параметры, это будет что-то вроде:

solr.Query(new LocalParams {{"type", "dismax"},{"qf", "myfield"}} + new SolrQuery("solr rocks"));

Посмотрите на раздел LocalParams в: https://github.com/mausch/SolrNet/blob/master/Documentation/Querying.md

...