2009-02-16 9 views
4

J'utilise Lucene.net pour indexer le contenu & documents etc. sur des sites Web. L'indice est très simple et a ce format:Indexation du contenu multilingue avec Lucene.net

 
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 

J'ai ces options pour l'adapter au service de contenu multilingue:

  1. Créer un index séparé pour chaque langue. Par exemple. Lucene-enGB, Lucene-frFR etc.
  2. Conservez l'index un et ajoutez-y un champ 'langage' supplémentaire pour filtrer les résultats.

Quelle est la meilleure option - ou y en a-t-il une autre? Je n'ai pas utilisé plusieurs index avant donc je penche vers la seconde.

Répondre

2

Je fais [2], mais un problème que j'ai, c'est que je ne peux pas utiliser différents analyseurs en fonction de la langue. J'ai combiné les mots vides des langages que je veux, mais je perds la capacité des choses plus avancées que l'analyseur offrira telles que le bourrage etc.

1

Vous pouvez éliminer les options 1 et 2.
Vous pouvez utiliser un index et les champs contenant les mots arabes créent deux fileds pour chaque: Si vous avez champ « texte » peut contenir le contenu arabe ou en anglais ==>

  • créer 2 champs pour « texte »: 1 champ , "Texte", indexé/recherché avec votre st Andard analyseur et un autre, "Text_AR", avec l'arabicAnalyzer. Pour y parvenir, vous pouvez utiliser PreFieldAnalyzerWrapper