pylucene构建索引_java-Apache Lucene:建立索引时如何使用TokenSt...
我正在尋找一種使用Apache Lucene編寫自定義索引的方法(準(zhǔn)確地說是PyLucene,但Java回答很好).
我要執(zhí)行的操作如下:將文檔添加到索引時,Lucene會將其標(biāo)記化,刪除停用詞等.如果我沒有記錯的話,通常使用分析器來完成.
我要實現(xiàn)的是以下內(nèi)容:在Lucene存儲給定術(shù)語之前,我想執(zhí)行查找(例如,在詞典中)以檢查是否保留該術(shù)語或?qū)⑵鋪G棄(如果該術(shù)語存在于我的詞典中) ,則保留它,否則將其丟棄).
我應(yīng)該如何進(jìn)行?
這是(在Python中)我對Analyzer的自定義實現(xiàn):
class CustomAnalyzer(PythonAnalyzer):
def createComponents(self, fieldName, reader):
source = StandardTokenizer(Version.LUCENE_4_10_1, reader)
filter = StandardFilter(Version.LUCENE_4_10_1, source)
filter = LowerCaseFilter(Version.LUCENE_4_10_1, filter)
filter = StopFilter(Version.LUCENE_4_10_1, filter,
StopAnalyzer.ENGLISH_STOP_WORDS_SET)
ts = tokenStream.getTokenStream()
token = ts.addAttribute(CharTermAttribute.class_)
offset = ts.addAttribute(OffsetAttribute.class_)
ts.reset()
while ts.incrementToken():
startOffset = offset.startOffset()
endOffset = offset.endOffset()
term = token.toString()
# accept or reject term
ts.end()
ts.close()
# How to store the terms in the index now ?
return ????
預(yù)先感謝您的指導(dǎo)!
編輯1:在研究Lucene的文檔后,我發(fā)現(xiàn)它與TokenStreamComponents有關(guān).它返回一個TokenStream,您可以使用它遍歷索引字段的Token列表.
現(xiàn)在,有些與我不了解的屬性有關(guān).或更準(zhǔn)確地說,我可以讀取令牌,但不知道之后該如何處理.
編輯2:我發(fā)現(xiàn)這個post,他們提到了CharTermAttribute的使用.但是(盡管在Python中)我無法訪問或獲取CharTermAttribute.有什么想法嗎 ?
EDIT3:我現(xiàn)在可以訪問每個術(shù)語,請參閱更新代碼片段.現(xiàn)在剩下要做的實際上是存儲所需的條件…
總結(jié)
以上是生活随笔為你收集整理的pylucene构建索引_java-Apache Lucene:建立索引时如何使用TokenSt...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机绘图实训任务书,2012-2cad
- 下一篇: 查看论坛隐藏链接_软连接与硬链接的区别