Расширенный синтаксический анализатор запросов Dismax избегает замены нескольких пробелов одним пробелом

Я использую расширенный парсер Dismax Query в нашей настройке. Я выполняю следующий запрос, чтобы получить документы, связанные с определенной компанией

_query_:"{!edismax qf='company' q.op='OR'}(\"the procter  & gamble company\")"

Для некоторых проблем с нашей логикой индексации у нас есть несколько пробелов в этой компании, названной компанией procter & gamble

Когда я запускаю запрос выше, он не дает никаких результатов, так как парсер edismax заменяет несколько пробелов одним пробелом. Ниже приведен фрагмент отладочной информации.

"rawquerystring": "_query_:\"{!edismax qf='company' q.op='OR'}(\\\"the procter  & gamble company\\\")\"",
    "querystring": "_query_:\"{!edismax qf='company' q.op='OR'}(\\\"the procter  & gamble company\\\")\"",
    "parsedquery": "(+DisjunctionMaxQuery((company:the procter & gamble company)))/no_coord",
    "parsedquery_toString": "+(company:the procter & gamble company)",
    "QParser": "LuceneQParser",
    "explain": {}

Я использую filetype в качестве lower_string для полевой компании. Ниже приводится определение анализатора.

<fieldType name="lower_string" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

Любые предложения о том, как я могу сказать парсеру EdisMax не заменять несколько пробелов?

0 ответов

Другие вопросы по тегам