嗨我有一个问题,Lucene搜索不会返回一致的结果。 使用StandardAnalyzer完成索引,并且lucene版本为3.0
数据库中的示例条目是
A1BC-1-12345678 - AU-01 / 123456 - No.1 ABC DEFG XX-YYY Example Data
如果我搜索整个字符串,它将不会返回任何结果。
如果我取出单个破折号和斜线,请搜索
A1BC-1-12345678 AU-01 123456 No.1 ABC DEFG XX-YYY Example Data
它不会返回任何结果。
如果我用空格替换XX-YYY之间的短划线,请搜索
A1BC-1-12345678 AU-01 123456 No.1 ABC DEFG XX YYY Example Data
--------它返回结果!----------------------
现在,如果我包含短划线和斜线,并用空格替换XX-YYY之间的短划线,请搜索
A1BC-1-12345678 - AU-01 / 123456 - No.1 ABC DEFG XX YYY Example Data
它不会返回任何结果。
最后,如果我用空格替换AU-01和XX-YYY之间的短划线,请搜索
A1BC-1-12345678 AU 01 123456 No.1 ABC DEFG XX YYY Example Data
它不会返回任何结果。
总之," XX-YYY"是无效的,但" AU-01"是有效的,但" XX YYY"是有效的" AU 01"是无效的,那么似乎是什么问题?
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
我认为我已经得到了答案,根据Lucene doc,StandardAnalyzer使用StandardTokenizer,它是基于以下内容的索引:
我认为带有小写过滤器的WhitespaceAnalyzer可以满足我的需求。