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