Запрос Solr.Net, возвращающий ложные результаты
Я пытаюсь найти Solr Instance сSolr.Net, У меня есть полеbody
который определен в схеме как:
<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
с экземпляром Solr4.4.0
версия.