Solr for Arabic

kha*_*ouk 7 search solr arabic

我正在使用Solr索引3个语言(阿拉伯语,法语和英语)中的文档,我使用了这个fieldType:

<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>
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是用阿拉伯语来说,当我把这个请求搜索到像???索尔这样的单词时,找不到这个单词,但是当我把这个单词??? 从左到右放在对面时,索尔找到了这个单词并返回结果.

我可以得到阿拉伯语单词的结果吗?

bma*_*ies 5

我将把丹尼尔在这里的聪明分析转化为记录的答案.不要为此投票,只是去寻找他投票的东西:-)

有两种方法可以使方向性与RTL文本不匹配.您可以向后索引它,或者您可以向后查询它.查询Solr的简单HTML表单永远不会弄乱方向性.在这种护理中,khaled正在使用一个PDF文件从PDF中提取文本,该文件库成为PDF文件包含"视觉顺序"文本而不是"逻辑顺序"的倾向的受害者.因此索引充满了向后的阿拉伯语.为了解决这个问题,他将不得不想出一个从pdfs中提取文本的工作库.

强制Apache Tika使用最新的Apache PDFbox可能会有所帮助,或者他的PDF可能如此古怪,即使是最新的PDFBox也无法处理它.在这种情况下,他有一个难题.