【发布时间】:2013-01-22 17:35:00
【问题描述】:
我们正在从搜索词字符串中构建一个布尔查询来搜索我们的 Lucene 索引。我希望使用标准分析器来分析这些字符串,标准分析器是我们用于索引的分析器。例如,foo-bar 1-2-3 应该分解为foo、bar、1-2-3,因为 Lucene 文档指出连字符会导致数字保持在一起,但单词会被标记化。最好的方法是什么?
目前我正在通过 QueryParser 运行我的搜索词字符串。
QueryParser parser = new QueryParser("", new StandardAnalyzer());
Query query = parser.parse(aSearchTermString);
这样做的问题是插入了引号。例如,foo-bar 1-2-3 变为 "foo bar"、1-2-3,它不会返回任何内容,因为 Lucene 会将 foo-bar 标记为 foo 和 bar。
我绝对不想通过删除带有replace 的引号来解决这种情况,因为我觉得我可能遗漏了什么或做错了什么。
【问题讨论】:
标签: java lucene compass-lucene