2017-01-29 2 views
1

In meinem solr schema.xml suchen I Produkt arabicum Namensfeld definiert, wie untenWie arabische Wörter in 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> 

In solr Suche ich mit Produktnamen arabischen Buchstaben mit suchen möchten. Während der Suche kann der arabische Benutzer wenig Standard fühlen, um nach einem Produktnamen zu suchen. Weil einige Charaktere während der Suche erwähnen müssen.

Ex: إ أ آ

In den obigen Zeichen erwähnt, Benutzer Kombination von Shift-Taste bekommen. Normalerweise, wenn arabische Leute "Ç" Zeichen erwähnen und die unten kombinierten Wörter erhalten.

Ex: إبرا

In meinem solr schema.xml ich als Produkt arabischen Namen Feld unten definiert

+0

also, was ist dein Problem? Hast du eine Ausnahme oder etwas bekommen? – Mysterion

+0

Mein Problem ist, wenn drücken Sie "Ç" Zeichen, Solr Suche nur mit diesen Zeichen Wörter. Ich möchte, wenn ich "Ç" drücken, sollte Zeichen solr auch kombinierte Zeichenwörter suchen. Es gibt keine Ausnahme – Mohan

Antwort

0

Ich konnte durch Zugabe von ASCIIFoldingFilter gewünschter Funktionalität erreichen, diese Filter sind in der Lage Akzente aus verschiedenen Sprachen zu entfernen , um sie in der Indexzeit ähnlich zu machen.

<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> 

Einige weitere Informationen zu diesem Filter - here. Arbeitscodebeispiel - here

+0

danke für die Untersuchung unser Problem, ich versuchte mit obigem Beispiel, aber es funktioniert nicht, wie wir Ergebnis erwartet .. Bitte verweisen Sie das Dokument Ich erklärte arabische Suche erwartetes Ergebnis. Mit diesem Link laden Sie bitte das Dokument https://www.sendspace.com/file/3d4ori – Mohan

+0

@ Mohan, was ist die Ausgabe dort und die erwartete? – Mysterion

+0

Bitte beziehen Sie sich auf das Dokument (Download von https://sendspace.com/file/3d4ori this rul) ... In diesem Dokument Tabelle 1 erwähnte ich Indexwerte und erwartetes Ergebnis. Bsp .: Take case: 1 wenn enter المؤؤسة التجارية dies sollte ich المؤؤسة التجارية العمارية dieses Ergebnis erhalten. aber im Moment bin ich nicht in der Lage, das Ergebnis zu bekommen. – Mohan

Verwandte Themen