欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Lucene中文分詞的highlight顯示

原文來(lái)自:http://www.lietu.com/doc/Highlighter.htm

Lucene中文分詞的highlight顯示

1、問(wèn)題的來(lái)源

增加分詞以后結果的準確度提高了,但是用戶(hù)反映返回結果的速度很慢。原因是,Lucene做每一篇文檔的相關(guān)關(guān)鍵詞的高亮顯示時(shí),在運行時(shí)執行了很多遍的分詞操作。這樣降低了性能。

2、解決方法

Lucene1.4.3版本中的一個(gè)新功能可以解決這個(gè)問(wèn)題。Term Vector現在支持保存Token.getPositionIncrement() Token.startOffset() 以及Token.endOffset() 信息。利用Lucene中新增加的Token信息的保存結果以后,就不需要為了高亮顯示而在運行時(shí)解析每篇文檔。通過(guò)Field方法控制是否保存該信息。修改HighlighterTest.java的代碼如下:

//增加文檔時(shí)保存Term位置信息。

       private void addDoc(IndexWriter writer, String text) throws IOException

       {

              Document d = new Document();

              //Field f = new Field(FIELD_NAME, text, true, true, true);

              Field f = new Field(FIELD_NAME, text ,

                                   Field.Store.YES, Field.Index.TOKENIZED,

                                   Field.TermVector.WITH_POSITIONS_OFFSETS);

              d.add(f);

              writer.addDocument(d);

       }

//利用Term位置信息節省Highlight時(shí)間。

       void doStandardHighlights() throws Exception

       {

              Highlighter highlighter =new Highlighter(this,new QueryScorer(query));

              highlighter.setTextFragmenter(new SimpleFragmenter(20));

              for (int i = 0; i < hits.length(); i++)

              {

                     String text = hits.doc(i).get(FIELD_NAME);

                     int maxNumFragmentsRequired = 2;

                     String fragmentSeparator = "...";

                     TermPositionVector tpv = (TermPositionVector)reader.getTermFreqVector(hits.id(i),FIELD_NAME);

                     //如果沒(méi)有stop words去除還可以改成 TokenSources.getTokenStream(tpv,true); 進(jìn)一步提速。

                     TokenStream tokenStream=TokenSources.getTokenStream(tpv);

                     //analyzer.tokenStream(FIELD_NAME,new StringReader(text));

                     String result =

                            highlighter.getBestFragments(

                                   tokenStream,

                                   text,

                                   maxNumFragmentsRequired,

                                   fragmentSeparator);

                     System.out.println("\t" + result);

              }

       }

       最后把highlight包中的一個(gè)額外的判斷去掉。對于中文來(lái)說(shuō)沒(méi)有明顯的單詞界限,所以下面這個(gè)判斷是錯誤的:

tokenGroup.isDistinct(token)

       這樣中文分詞就不會(huì )影響到查詢(xún)速度了。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Lucene關(guān)于幾種中文分詞的總結 (Lucene與搜索引擎技術(shù)) - [Matrix - 與 Java 共舞]
Lucene常用的Analyzer功能概述以及自定義Analyzer
讓中科院中文分詞系統ICTCLAS為lucene所用的簡(jiǎn)單程序(C#版)
lucene3.0創(chuàng )建索引及多目錄搜索詳解
Analysis分析器(三)
lucene.net 2.0 中文分詞后語(yǔ)法高亮問(wèn)題 - 智慧掩蓋真相 - 博客園
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久