Java Solr:支持希腊语的音译/转录
我为一些包含希腊字母的字段编制了索引(例如Java Solr:支持希腊语的音译/转录,java,solr,lucene,Java,Solr,Lucene,我为一些包含希腊字母的字段编制了索引(例如∑τεφαν)。就像在谷歌一样,我想在搜索Stefan时找到这些文档。是否支持希腊语单词的音译/转录 到目前为止,我已经尝试了solr.ASCIIFoldingFilterFactory和solr.ICUFoldingFilterFactory。这两种语言似乎都适用于法语(搜索Stephane也返回Stéphane)或波兰语(搜索Wroclaw也返回Wrocław)。但它似乎对希腊语不起作用(搜索时,∑τεφαν不会返回Stefan) 有关如何执行此操作
∑τεφαν
)。就像在谷歌一样,我想在搜索Stefan
时找到这些文档。是否支持希腊语单词的音译/转录
到目前为止,我已经尝试了solr.ASCIIFoldingFilterFactory
和solr.ICUFoldingFilterFactory
。这两种语言似乎都适用于法语(搜索Stephane
也返回Stéphane
)或波兰语(搜索Wroclaw
也返回Wrocław
)。但它似乎对希腊语不起作用(搜索时,∑τεφαν
不会返回Stefan
)
有关如何执行此操作的任何提示?您的索引对象可能有一个getter函数,用于返回可搜索的单词 伪代码:
public function returnIndexName(w){
if(w.isGreek){
return matchingLetter(lowercase(w.name),
并将此属性添加到索引中
也许有点老套,但转换希腊语单词的逻辑应该不难
for letter in word, returnword += alphabetkeys[letter]
我认为这是/a方法您的索引对象可能有一个getter函数,用于返回可搜索的单词 伪代码:
public function returnIndexName(w){
if(w.isGreek){
return matchingLetter(lowercase(w.name),
并将此属性添加到索引中
也许有点老套,但转换希腊语单词的逻辑应该不难
for letter in word, returnword += alphabetkeys[letter]
我认为这是一种方法,你可以通过添加
到你的字段类型
有关此类特定语言的更多信息,请参见
您可以通过添加
到你的字段类型
有关此类特定语言的更多信息,请参见
您可以尝试使用字符过滤器,并将包含特定字符的文件映射到其ascii等效字符
<charFilter class="solr.MappingCharFilterFactory" mapping="greek_character.txt"/>
您可以尝试使用字符过滤器,并将包含特定字符的文件映射到其ascii等效字符
<charFilter class="solr.MappingCharFilterFactory" mapping="greek_character.txt"/>
您在solr web界面中分析了相同的字段吗?您在solr web界面中分析了相同的字段吗?不幸的是,添加solr.GreekStemFilterFactory
并没有解决问题。您可以共享您的字段类型吗?字段类型如下所示:
您可以为您的字段I尝试此字段吗我尝试过你的建议,但通过搜索firstName:∑τεφαν和lastName:Miller
我没有找到firstName:Stefan和lastName:Miller的人。不幸的是,添加solr.GreekStemFilterFactory
并没有解决问题。你能共享你的字段类型吗?字段类型如下:
你能在你的领域试试这个吗?我试过你的建议,但通过搜索名字:∑τεφαν和名字:米勒
我没有找到名字:Stefan和名字:Miller的人。这可以用来开发一个特殊的“GreekFoldingFilter”。这可以用来开发一个特殊的“GreekFoldingFilter”“GreekFoldingFilter”。