2013-05-29 63 views
0

我是新來的Lucene。Lucene的PositionIncrementAttribute和搜索問題

我已經實現了分析儀和幾個過濾器。原來的TokenStream修改和屬性是否插令牌與PositionIncrementAttrbute 0

恩:句子:「原來是著名的」 通過自定義分析儀和幾個過濾器和附加屬性的令牌後,新的TokenStream我們得到是 「SO名詞SocialSite着名JJ積極」 我基本上在這裏試圖標記每個單詞。 SO是名詞和社交網站,着名是形容詞(JJ),是一個正面詞等

這現在絕對可以搜索基於屬性(這裏:名詞,SocialSite,JJ,正面).ie,我可以搜索「名詞「或者說」正面「,並且仍然以」SO是着名的「作爲輸出。

但是,由於我在添加文檔時將這個全文「SO是有名的」作爲字段,當我搜索「SocialSite」時,我得到一個具有「SO很有名」的輸出其中一個領域。

但是,是有可能得到只有「SO」的輸出,而不是整個文本?即只有實際的標記(原始輸入中存在的標記)作爲輸出? 另一個例子:如果我搜索說「積極」,我應該得到「着名」作爲輸出,而不是整個「SO是着名的」。

我知道,如果我把它作爲一個字段的文件中,我應該能夠得到它,但我怎麼添加這樣一個領域?因爲只有當令牌通過過濾器時,我們才能知道所有的屬性會被附加到它上面,所以當我們做indexwriter.addDocument()時,我們不知道屬性。

我看到的典型問題是索引是基於新的令牌流來完成的,但是當它檢索到文檔時,文檔具有較老的實際令牌流(或實際輸入),這就是給定的輸出。

幫助/評論贊賞

回答

0

這聽起來像你應該使用熒光筆?

有三個在Lucene的現在,但我會用最新的一個,PostingsHighlighter啓動。我寫了一個位置:http://blog.mikemccandless.com/2012/12/a-new-lucene-highlighter-is-born.html

熒光筆識別哪些字段的文本部分,其條款與查詢相匹配。

+0

您的博客條目非常有趣。謝謝。 但我仍然不確定,我如何將它用於上面的用例。你能分享你的想法嗎? – Uno

+0

任何幫助或評論,高度讚賞。 – Uno