0
擁有一個已經索引的文檔,在搜索時,我必須將該文檔分爲兩部分:第一部分包含前100個單詞(標記),其餘部分表示第二部分。我必須得到這樣兩個部分:第二部分70%和第一個30%。lucene自定義得分
編輯2:所以我試圖創建一個使用SpanPositionRangeQuery搜索者,但我一定已經明白SpanQuery使用都錯了,因爲我不能得到任何命中(我用lukeall來驗證的話我正在尋找被收錄)。有人能幫我一把嗎?
public static void search(String indexDir, String q) throws Exception
{
Directory dir = FSDirectory.open(new File(indexDir), null);
IndexSearcher is = new IndexSearcher(dir);
Term term = new Term("Field", q);
SpanPositionRangeQuery spanQuery = new SpanPositionRangeQuery(new SpanTermQuery(term), 0, 100);
spanQuery.setBoost(0.3f);CustomRomanianAnalyzer(Version.LUCENE_35));
long start = System.currentTimeMillis();
TopDocs hits = is.search(spanQuery, 10);
//TopDocs hits = is.search(query, 10);
long end = System.currentTimeMillis();
System.err.println("I found " + hits.totalHits + " documents (in " +
(end - start) + " milliseconds) '" +
q + "':");
for (int i=0;i<hits.scoreDocs.length;i++)
{
ScoreDoc scoreDoc = hits.scoreDocs[i];
Document doc = is.doc(scoreDoc.doc);
System.out.println(doc.get("filename"));
}
is.close();
}
我不知道如何查詢分析器與SpanPositionRangeQuery相結合,會得到什麼,我需要......
我試圖這樣做,但我不知道如何鏈接查詢與解析器。我用我試過的代碼編輯了我的問題。 – MRM