Indexação de conteúdo multilíngue com Lucene.net
-
23-08-2019 - |
Pergunta
eu uso Lucene.net para indexação de conteúdo e documentos etc. em sites. O índice é muito simples e tem este formato:
LuceneId - unique id for Lucene (TypeId + ItemId) TypeId - the type of text (eg. page content, product, public doc etc..) ItemId - the web page id, document id etc.. Text - the text indexed Title - web page title, document name etc.. to display with the search results
Eu tenho essas opções para adaptá-lo para servir conteúdo multilíngue:
- Crie um índice separado para cada idioma. Por exemplo, Lucene-Engb, Lucene-Frfr etc ..
- Mantenha o índice e adicione um campo de 'idioma' adicional para filtrar os resultados.
Qual é a melhor opção - ou existe outra? Eu não usei vários índices antes, então estou inclinado para o segundo.
Solução
Eu faço [2], mas um problema que tenho é que não posso usar analisadores diferentes, dependendo do idioma. Combinei as palavras de parada dos idiomas que quero, mas perco a capacidade de coisas mais avançadas que o analisador oferecerá, como Stemming etc.
Outras dicas
Você pode eliminar as opções 1 e 2.
Você pode usar um índice e os campos que contêm palavras em árabe criam dois arquivados para cada um: se você tiver campo "Texto"Pode conter conteúdo árabe ou inglês ==>
- Crie 2 campos para "Texto": 1 campo,"Texto", Indexado/pesquisado com seu analisador padrão e outro".Text_ar", com o arabicanalyzer. Para alcançar que você pode usarPré -fieldanalyzerwrapper