3

給定一個有限的實體術語字典,我正在尋找一種方法來使用Lucene智能標記進行實體提取。目前,我已經能夠利用Lucene爲:
- 搜索複雜詞組一些fuzzyness
- 高亮導致Lucene實體提取

不過,我是不知道如何:匹配的短語
- 獲得準確的偏移每場比賽
尚北道的實體特有annotaions(不只是爲每一個命中標籤)

我已經使用說明()方法嘗試 - 但這只是給出了其中的命中查詢的條件 - 沒有原文中命中的偏移量。

有沒有人遇到類似的問題,願意分享一個潛在的解決方案?

非常感謝您的幫助!

回答

2

對於偏移,看到了這個問題:How get the offset of term in Lucene?

我不太明白你的第二個問題。這聽起來像你想從stored field獲得數據。從存儲字段中獲取數據:

TopDocs results = searcher.Search(query, filter, num); 
foreach (ScoreDoc result in results.scoreDocs) 
{ 
    Document resultDoc = searcher.Doc(result.doc); 
    string valOfField = resultDoc.Get("My Field"); 
} 
+0

以上是獲取單個術語的偏移量,但是,我需要與我的搜索匹配的完整短語的偏移量。就存儲領域而言,我將如何直接從數據庫中獲取數據? – 2010-11-17 18:00:48

+0

@Dima_F:我添加了代碼來展示如何使用存儲的字段。關於短語抵消:我認爲你不能。你可以看看[熒光筆的功能](http://www.docjar.org/html/api/org/apache/lucene/search/vectorhighlight/SimpleFragListBuilder.java.html),但你最好的選擇可能是修改熒光筆代碼以返回偏移量。 – Xodarap 2010-11-17 18:45:48

+0

非常感謝您對此的幫助!我會通過熒光筆修改讓你知道我在哪裏。 – 2010-11-17 18:49:58