强制Lucene(在OpenCms中)以特定的语言环境显示结果



我有一个网站安装与OpenCms,它使用"Lucene"作为搜索引擎。我的网站有两种语言:西班牙语(支持)和加勒甘语(不支持)。我已经实现了我的搜索过程工作得很好,但结果总是用西班牙语显示。是否有可能强迫Lucene在特定的语言环境中显示结果?

当我建立搜索索引时(在后台),我有一个名为"Locale"的选项,我可以指定索引的区域设置。我这样做了,创建了两个单独的索引;一个区域设置为"es"的称为"index-es",另一个区域设置为"gl"的称为"index-gl"。

我传递不同的索引名称与函数"setIndex"是否我的用户使用一种语言或其他一种,但不工作。始终以ES语言环境显示内容。

你是指这个还是我没听懂你的意思?

在构建搜索索引时,可以创建一个名为Language的新字段。
使用该字段过滤您的搜索结果。

编辑

Document doc = new Document();
doc.Add(new Field("Language", "GL", Field.Store.NO,
            Field.Index.NOT_ANALYZED_NO_NORMS));
...
indexWriter.AddDocument(document);

获取GL中排名前10位的文档:

Directory dir = FSDirectory.open(new File("..."));
IndexSearcher searcher = new IndexSearcher(dir);
Query q = new TermQuery(new Term("Language", "GL"));
TopDocs hits = searcher.search(q, 10);
searcher.close();

最新更新