Я пытаюсь найти экземпляр Solr с Solr.Net. У меня есть поле body
который определен в схеме как:Запрос Solr.Net, возвращающий ложные результаты
<field name="body"
type="text_general"
indexed="true"
stored="true"
omitNorms="true"/>
text_general
использует в схеме solr.StandardTokenizerFactory
и определяется как:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
(я не изменил ничего с этим типом поля, Это один Я получил стандартную установку solr)
Я пытаюсь запросить записи по поисковому запросу LISTBU5.RCV
, он возвращает мне результаты, содержащие LISTBU4.RCV
. Как:
Items left on queue: \\111.11.11.11\Lists\SAVELIST\ABC2\LISTBU4.RCV
Ложные Результат: Номер в конце срока поиска отличается
Мой код для выполнения запросов является:
SolrQueryByField solrQuery = new SolrQueryByField("body", searchTerm);
var result = solr.Query(solrQuery, new SolrNet.Commands.Parameters.QueryOptions
{
Rows = 100, //
Start = 0,
OrderBy = new[] { new SortOrder("ID", Order.DESC) },
});
Но если я использую текст запроса, например:
SolrQuery solrQuery = new SolrQuery("(body:" + "\"" + searchTerm + "\")");
Он возвращает точные результаты. Я знаю, что создание текстового запроса не рекомендуется в Solr.Net
, но что мне с этим делать?
Я использую SolrNet.dll
версия 0.4.0.2002
с экземпляром Solr 4.4.0
версия.
Пробовал, что, не работает. Это возвращает тот же результат. – user2711965
с простым текстовым запросом работает так, как ожидалось, я также указал это в моем вопросе. В пользовательском интерфейсе Solr Web, если я получу ожидаемый результат. Только «SolrQueryByField» не дал правильного результата. Я считаю, что нашел решение и разместил то же самое, что и ответ. – user2711965