Как заставить программу проверки правописания Solr игнорировать регистр?
Как вы просите пример проверки орфографии игнорировать регистр? Я использую все значения по умолчанию, показанные в демо.
Теперь я вижу, что если я наберу " Древний", он спросит: "Ты имел ввиду древний?" Что мне делать?
PS: у меня нет ничего, что имеет слово "заклинание" в моем schema.xml!!!! Как это работает?
2 ответа
Схема должна иметь тип поля с именем "spell", который используется для проверки орфографии. Это строчные буквы всех слов, используемых проверки орфографии, так что вам не нужно беспокоиться о регистре. Вот пример того, как использовать этот тип поля.
Создайте поле в вашей схеме для проверки орфографии.
<field name="spelling" type="spell" indexed="true" stored="false"/>
А затем используйте поле копирования, чтобы скопировать данные в это поле. В приведенном ниже коде поле "product_name" будет скопировано в программу проверки орфографии.
<copyField source="product_name" dest="spelling"/>
Редактировать...
Извините... Я думал, что тип поля "spell" был в схеме по умолчанию. Добавьте это к своей схеме в том же разделе, что и другие теги fieldType.
<fieldType name="spell" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Пожалуйста, отправьте свой solrconfig.xml - я думаю, что это даст ключ.
Моим лучшим предположением будет то, что solrconfig.xml содержит конфигурацию для проверки орфографии ( ссылка), которая указывает поле, которое будет использоваться для создания предложений по написанию. В этом поле нет файла LowerCaseFilter в вашем schema.xml