0
我需要能够使用termDocs和Term's返回结果。我不返回任何结果时,我使用标准的分析,对其他分析仪任何想法avaliable执行所有的标准分析仪相同的操作,并返回使用类似字词的搜索结果(例如条款而─的#define):Java Lucene:搜索包含非字母数字字符的术语
analyser = new StandardAnalyser(Version.LUCENE_30);
reader = IndexReader.open(FSDirectory.open(IndexDir), true);
TermDocs td = reader.termDocs();
QueryParser parserContents = new QueryParser(Version.LUCENE_30,field,analyser);
query = parserContents.parse(searchTerm);
docs = search.search(query, 100000);
ScoreDoc[] documents = docs.scoreDocs;
for(ScoreDoc match : documents)
{
td.seek(new Term(field,w));
td.skipTo(match.doc);
hits = td.freq();
}
不过我做的当我尝试使用queryparser而不是termdocs时得到结果。对于像#define(特殊字符#)这样的术语,匹配在上述上下文中始终为零。
如果您可以显示完整的代码块这有困难吗?你如何得到上面的读者?用哪个查询条件?如http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Escaping%20Special%20Characters所述,您是否正确转义? – Femi 2011-05-24 13:32:04
@Femi:更新了我必须得到的读者,但我认为它更多的是标记,而索引或类似的东西影响特殊字符,就像我们没有逃避# – remo 2011-05-24 13:54:52