2017-01-29 9 views
1

В моей SOLR schema.xml я определил продукт арабского поле имени, как показано нижеКак искать арабские слова в Solr

<field name="productNameArabic" type="text_ar" indexed="true" stored="true"/> 
    <fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" /> 
     <filter class="solr.ArabicNormalizationFilterFactory"/> 
     <filter class="solr.ArabicStemFilterFactory"/> 
     </analyzer> 
    </fieldType> 

В поисках Solr Я хочу найти название продукта, используя арабские буквы. Во время поиска арабский пользователь может немного по умолчанию искать какое-либо имя продукта. Потому что некоторые персонажи должны упоминать при поиске.

Ex: إ أ آ

В указанных выше символов, пользователь может получить комбинацию клавиши переключения. Обычно, если арабский народ будет упоминать символ «ا» и получит следующие комбинированные слова.

Пример: إبرا

В моем ГУМЗЕ schema.xml я определил продукт арабского поле имени, как показано ниже

+0

так, в чем проблема? вы получили исключение или что-то еще? – Mysterion

+0

Моя проблема в том, что если нажать символ «ا», поиск solr соответствует только этим символам. Я хочу, если я нажимаю символ «ا», solr должен также искать комбинированные символы. Не исключение – Mohan

ответ

0

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

<fieldType name="arabic" class="solr.TextField" positionIncrementGap="100"> 
      <analyzer> 
       <tokenizer class="solr.StandardTokenizerFactory"/> 
       <filter class="solr.LowerCaseFilterFactory"/> 
       <filter class="solr.ASCIIFoldingFilterFactory"/> 
       <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" /> 
       <filter class="solr.ArabicNormalizationFilterFactory"/> 
       <filter class="solr.ArabicStemFilterFactory"/> 
      </analyzer> 
</fieldType> 

Дополнительная информация об этом фильтре - here. Пример рабочего кода - here

+0

спасибо за исследование нашей проблемы, я пробовал с приведенным выше примером, но он не работает, поскольку мы ожидали результата. Пожалуйста, обратитесь к документу, который я объяснил, арабский поиск ожидаемого результата. Используя эту ссылку, скачайте документ https://www.sendspace.com/file/3d4ori – Mohan

+0

@ Мохан, какой результат там и ожидаемый? – Mysterion

+0

Пожалуйста, обратитесь к документу (загрузите с https://sendspace.com/file/3d4ori это правило) ... В этом документе Таблица 1 Я упомянул значения индекса и ожидаемый результат. Пример: Возьмите случай: 1, если введите المؤسسة التجارية, я должен получить этот результат в المؤسسة التجارية العمانية. но сейчас я не могу получить результат. – Mohan