2010-08-31 200 views
4

连字符的话,我想的Lucene搜索连字符的单词, 为如:节能或“节能”作为一个词搜索使用Lucene

所以,如果输入的是节能的标记生成器生成条件像 能量或有效率或能源效率或能源效率

用含有“高效节能”和“高效节能”的页面所以Lucene的回报,但我希望它与高效节能的网页完全返回

所以问题是我该如何修改t他标准化管理者将节能作为一个整体词汇进行搜索,而不是将其分解为单独的词语。

回答

7

使用WhitespaceAnalyzer而不是standardAnalyzer
这将产生只分配在白色空间上的令牌。但请检查其他将会改变的事情。

+1

非常感谢!关于这些东西没有太多文档。我有一个自定义的'Analyzer'来防止停用词语被过滤,所以我现在在分析器中使用'WhitespaceTokenizer'而不是'StandardTokenizer'。但要小心,当使用“WhitespaceTokenizer”时,搜索会变得区分大小写。所以我必须先通过一个'LowerCaseFilter'来包装它。 – Thermometer 2015-06-04 09:57:58

+0

我不害怕!空白分析器的命名非常准确:例如,“泡泡”被视为与“泡泡:”完全不同的标记。对于99%的情况,这并没有多大用处......我认为这对OP没有用处 – 2016-12-20 17:54:16