我已将一些包含希腊字母的字段编入索引(例如Στεφαν
)。就像谷歌一样,我想在搜索Stefan
时找到这些文档。对希腊词的音译/转录是否有任何支持?
到目前为止,我已经尝试了solr.ASCIIFoldingFilterFactory
和solr.ICUFoldingFilterFactory
。两者似乎都适用于法语等语言(搜索Stephane
也返回Stéphane
)或波兰语(搜索Wroclaw
也返回Wrocław
)。但它似乎不适用于希腊语(搜索Στεφαν
不会返回Stefan
)。
有关如何执行此操作的任何提示?
答案 0 :(得分:1)
您可以尝试使用字符过滤器并将具有特定字符的文件映射到其ascii等效字符。
<charFilter class="solr.MappingCharFilterFactory" mapping="greek_character.txt"/>
答案 1 :(得分:0)
你的索引对象可能有一个getter函数,返回一个可搜索的单词
伪代码:
public function returnIndexName(w){
if(w.isGreek){
return matchingLetter(lowercase(w.name),
)
}
}
http://www.typegreek.com/alphabet.key/
并将此属性添加到索引
也许有点hacky,但转换希腊词的逻辑不应该是困难的
for letter in word, returnword += alphabetkeys[letter]
我认为这是/一种方式
答案 2 :(得分:-1)
您可以尝试添加<filter class="solr.GreekStemFilterFactory"/>
到你的fieldType。
有关更具体的语言,您可以查看