Проблема размещения документов в ядре Solr - PullRequest
0 голосов
/ 17 июня 2019

Я индексирую документы в ядре solr, но некоторые документы не индексируются.Я не знаю, почему они не индексируются.

Когда я индексирую строку, а затем токены строки, то индексируются только токены, но весь текст не индексируется.Хотя если я индексирую в обратном порядке, то есть: сначала токены текста, а затем текст, так что текст будет индексироваться ..

Когда я индексирую документы

{"detected_language":"hi","searchstring":"कपड़ा धोने की 
मशीन","translated_text":"washing machine"},
{"detected_language":"hi","searchstring":"कपड़ा","translated_text":" 
"},
{"detected_language":"hi","searchstring":"धोने","translated_text":" 
"},
{"detected_language":"hi","searchstring":"की","translated_text":" 
"},
{"detected_language":"hi","searchstring":"मशीन","translated_text":" 
"}

Тогда только4 документа индексируются в ядре solr вместо 5 документов.И эти 4 документа: {कपड़ा ,धोने ,की,मशीन}.

Но когда я делаю индексацию, как:

{"detected_language":"hi","searchstring":"कपड़ा","translated_text":" 
"},
{"detected_language":"hi","searchstring":"धोने","translated_text":" 
"},
{"detected_language":"hi","searchstring":"की","translated_text":" 
"},
{"detected_language":"hi","searchstring":"मशीन","translated_text":" 
"},
{"detected_language":"hi","searchstring":"कपड़ा धोने की 
मशीन","translated_text":"washing machine"}

Тогда все 5 документов будут индексироваться.

Я использовалэти поля:

<field name="searchstring" type="string_hi" indexed="true" 
stored="true" required="true" omitNorms="true" multiValued="false" 
/>
<field name="detected_language" type="string"  indexed="true" 
stored="true" omitNorms="true" multiValued="false"/> 
<field name="translated_text" type="string"  indexed="true" 
stored="true" omitNorms="true" multiValued="false"/>

И fieldType для строки поиска:

<fieldType name="string_hi" class="solr.TextField" positionIncrementGap="100"> 
  <analyzer type="query">
    <charFilter class="solr.HTMLStripCharFilterFactory"/>
    <tokenizer class="solr.StandardTokenizerFactory"/>
  </analyzer>
</fieldType>

Я ожидаю, что вся строка поиска будет иметь индекс ..

1 Ответ

1 голос
/ 18 июня 2019

uniqueKey документа никогда не должен быть анализируемым типом - по крайней мере, не тот, который заканчивается несколькими токенами (поэтому токенизатор исключен, за исключением, возможно, KeywordTokenizer). Вы столкнетесь с проблемами, при которых существующий документ будет перезаписан в противном случае.

Создайте поле id как string, установите его как поле uniqueKey, затем используйте copyField, чтобы скопировать содержимое из searchstring в id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...