[英]search in lucene index
我在要在文本中进行搜索的列上创建了lucene(3.0.1)索引,在对该文本进行测试时:
$GLD is a great example of why it does not make sense EVER to try and catch a falling knife.
如果我通过关键字"falling"
搜索,它会给我结果,但是通过"$GLD"
进行搜索却一无所获
我正在使用standardAnalyzer:
String longString = "$GLD is a great example of why it does not make sense EVER to try and catch a falling knife."
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
doc.add(new Field("data", longString, Store.YES, Field.Index.ANALYZED));
因为设置了Field.Index.ANALYZED
,所以它应该创建令牌并且应该存在$GLD
。 分析器将从文本中删除停用词,因为在此过程中还将删除单词$GLD
。
分析器更改了文档的字段。 在搜索之前,为什么不对查询使用分析器。 同时,QueryParser将大有帮助。
您应该检查StandardAnalyzer
, StandardAnalyzer
可能会删除$
并在其过程中使用LowerCaseFilter
(我不确定,我只知道2.3和4.1)。 LowerCaseFilter
将使单词变为小写。 当搜索大写字母时,您将一无所获。
您可以使用Luke来检查索引中的标记化结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.