如何编写一个返回包含字母"t"的所有单词的Lucene查询?

use*_*115 1 lucene

我尝试了这个Lucene代码示例,该示例有效:http:
//snippets.dzone.com/posts/show/8965

然而改变:
查询query = parser.parse("st.");

查询的查询= parser.parse( "T");

返回零命中.

如何编写一个返回包含字母"t"的所有单词的Lucene查询?
(返回的最大命中数= 20)

编辑:这是有效的:

RegexQuery regexquery = new RegexQuery(new Term("fieldname",".t. "));
isearcher.search(regexquery,collector);
System.out.println("collector.getTotalHits()="+ collector.getTotalHits());

Yuv*_*l F 6

您需要一个不同的分析器.该示例使用StandardAnalyzer,它根据空格和其他一些更精细的规则删除标点符号并中断单词.但是,它不会将单词分解为字符.您可能需要构建自己的自定义分析器来执行此操作,并且它似乎在运行时和内存消耗方面都很昂贵.另一个(可能更好)选项是使用RegexQuery.