簡體   English   中英

Lucene-如何使用TeeSinkTokenFilter?

[英]Lucene - How to use TeeSinkTokenFilter?

誰能解釋從Lucene使用TeeSinkTokenFilter的方式(以及用途)? 一個例子也將不勝感激= P。 我發現官方文檔不太清楚,並且還查找了許多站點,但進展不大。 謝謝。

是的,我也不認為官方文檔非常清楚。 我認為讓它如此混亂的部分原因在於,它以難以區分的方式展示了兩個不同的功能。 讓我看看是否可以重寫他們的示例以僅顯示基本情況。

TeeSinkTokenFilter source1 = new TeeSinkTokenFilter(
    new WhitespaceTokenizer(version, reader1));
TeeSinkTokenFilter.SinkTokenStream sink1 = source1.newSinkTokenStream();
TeeSinkTokenFilter.SinkTokenStream sink2 = source1.newSinkTokenStream();
source1.consumeAllTokens(); // all tokens get cached at this point

TokenStream final3 = new EntityDetect(sink1);
TokenStream final4 = new URLDetect(sink2);

d.add(new TextField("f3", final3, Field.Store.NO));
d.add(new TextField("f4", final4, Field.Store.NO));

這允許final3和final4令牌流共享source1完成的處理。 如官方文檔所述,流的使用順序很重要,但並未說明,順序似乎不確定(或字段名稱按字母順序排列)。 我建議像上面所做的那樣使用consumeAllTokens方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM