Как заставить программу проверки правописания Solr игнорировать регистр? - PullRequest
2 голосов
/ 01 марта 2011

Как вы просите пример проверки орфографии игнорировать регистр? Я использую все значения по умолчанию, показанные в демоверсии 1002 *.
Теперь я вижу, что если я наберу Древний , он спросит: «Вы имели в виду древний ?» Что мне делать?

ps: у меня нет ничего, что содержит слово «заклинание» в моем schema.xml !!!! Как это работает?

Ответы [ 2 ]

9 голосов
/ 01 марта 2011

Схема должна иметь тип поля с именем «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>
0 голосов
/ 01 марта 2011

Пожалуйста, отправьте свой solrconfig.xml - я думаю, что это даст подсказку.

Моим лучшим предположением будет то, что solrconfig.xml содержит конфигурацию для проверки орфографии ( ссылка ), которая задает поле, которое будет использоваться для создания предложений по написанию. Это поле не содержит LowerCaseFilter в вашем schema.xml

...