2010-09-29 54 views
3

在Lucene中,使用标准分析器,我希望使字段的空间可搜索。 我使用StandardAnalyzer设置Field.Index.NOT_ANALYZED和Field.Store.YES 当我在LUKE中查看我的索引时,字段与我所预期的一样,字段和值如: location - >'New York' 。 Here我发现我可以使用KeywordAnalyzer使用查询来查找这个值: location:“New York”。在Lucene中,使用标准分析器,我想使字段中的空格可搜索

但我想添加另一个术语的查询。假设有一个包含由StandardAnalyzer创建的规范化和分析的术语的正文字段。使用KeywordAnalyzer作为这个领域,我得到了不同于使用StandardAnalyzer的结果。

如何在一个QueryParser中组合两个分析器,其中一个分析器适用于某些字段,另一分析器适用于另一字段。我虽然创建了我自己的分析仪,根据不同的领域,其行为可能会有所不同,但我不知道如何去做。

回答

5

PerFieldAnalyzerWrapper可让您将不同的分析仪应用于不同的领域。

+0

这是我们用于完全相同问题的解决方案。我建议创建一个可供Searcher和Writer使用的公共getAnalyzer方法。 – Snekse 2010-09-30 21:46:18