2011-10-20 13 views
7

używam Solr do dokumentów indeks w 3 Langues (arabski, francuski i angielski), Użyłem tej FieldType:Solr dla arabskiego

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

Wszystko było dobre, ale w języku arabskim, kiedy kładę to Prośba o wyszukanie słowa takiego jak حقل Solr nie znajduje tego słowa, ale kiedy umieszczam słowo przeciwnie لقح od lewej do prawej, Solr znajduje słowo i zwraca wynik.

Czy mogę uzyskać wynik na słowa arabskie?

+1

Nie znam żadnego mechanizmu, który mógłby odwrócić kolejność tekstu RTL w Solr. Ogólnie rzecz biorąc, ludzie uważają, że chcą jakiejś lematyzacji w języku arabskim, aby poradzić sobie ze wszystkimi odmienionymi formami. W jakim celu budujesz interfejs użytkownika, do którego wpisujesz wyszukiwane hasła? – bmargulies

+0

Używam strony internetowej, także w moim teście używam Eclipse bezpośrednio z API solrj. –

+2

Czy przypadkiem nie poznałeś swojego tekstu z plików PDF? Jeśli tak, wydaje się, że jest znany problem z Tika: https://issues.apache.org/jira/browse/TIKA-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995516 –

Odpowiedz

5

Zamierzam włączyć sprytną analizę Daniela do odpowiedzi na płytę. Nie głosuj na to, po prostu znajdź coś z jego głosowania na :-)

Istnieją dwa sposoby na niedopasowanie kierunkowości z tekstem RTL. Możesz indeksować go wstecz lub możesz zwracać się do niego wstecz. Prosty formularz HTML zapytujący o Solr nigdy nie zepsuje kierunkowości. Pod tym względem firma Khaled wyodrębniała tekst z pliku PDF, korzystając z biblioteki, która padła ofiarą tendencji w plikach PDF, aby zawierała tekst "zamówienia wizualnego", a nie "porządek logiczny". Indeks był pełen arabskiego odwrotu. Aby to naprawić, będzie musiał wymyślić działającą bibliotekę, która wyodrębnia tekst z plików pdf.

Wymuszenie użycia Apache Tika do korzystania z najnowszej skrzynki PDF Apache może pomóc, a jego plik PDF może być tak dziwaczny, że nawet najnowszy PDFBox nie może go obsłużyć. W takim przypadku ma on trudny problem.

+1

Dziękuję za barmanki, dodałem ICU4J.jar do mojego projektu, Teraz Tika może bez problemu wydobywać tekst arabski. –

+0

Proszę Khaled Mabrouk Mam ten sam problem, czy możesz podać rozwiązanie na następujące pytanie: http://stackoverflow.com/questions/10076959/how-to-parse-arabic-pdf-with-tika –

+0

Cześć Khaled, co rozumiesz przez "uwzględnienie ICU4J" w projekcie? Nie mam pojęcia, jak to zrobić. Czy ktoś może rzucić trochę światła na to? –

Powiązane problemy