2015-03-02 32 views
0

在lucene中可以根據term-vector位置搜索文檔相似度嗎?
例如有三個文件的內容如下在lucene中使用Term向量位置搜索

1:你好你怎麼樣
2:你好,你是如何
3:你好你怎麼樣

現在,如果文檔1中搜索的Lucene那麼就應該用更少的分數與分數多文檔,然後返回2 3 DOC文檔,因爲2有「你」和「是」在不同的位置的話,

總之Lucene的應定期職位返回精確匹配的文檔

回答

0

我想你需要的是一個PhraseQuery,這是一個Lucene 查詢類型,將考慮您的令牌的精確位置,並允許您定義斜率或置換關於這些令牌的耐受性。

換句話說,您的代幣在位置上與來源不同的地方越多,他們得分越少。

您可以使用它像:

QueryBuilder analyzedBuilder = new QueryBuilder(new MyAnalyzer()); 
PhraseQuery query = analyzedBuilder.createPhraseQuery("fieldToSearchOn", textQuery); 

createPhraseQuery允許第三個參數我提到了,如果你想調整它。

Regards,