我想使用單個字段來索引文檔的標題和正文,以提高性能。「提升」lucene文檔中相同字段的不同實例
當時的想法是做這樣的事情:
Field title = new Field("text", "alpha bravo charlie", Field.Store.NO, Field.Index.ANALYZED);
title.setBoost(3)
Field body = new Field("text", "delta echo foxtrot", Field.Store.NO, Field.Index.ANALYZED);
Document doc = new Document();
doc.add(title);
doc.add(body);
然後我可以做一個單一的TermQuery
代替BooleanQuery
兩個不同的領域。
但是,事實證明,字段提升是文檔中同名字段的所有提升的multiple。在我的情況下,這意味着這兩個領域的推動力爲3.
有沒有一種方法可以得到我想要的而不訴諸於使用兩個不同的領域?一種方法是將title
字段多次添加到文檔中,這會增加術語頻率。這很有效,但似乎令人難以置信的腦死亡。
我也知道關於payloads,但這似乎對我以後的事情有點矯枉過正。
任何想法?
你可以進入的一些細節你試圖克服的性能問題?我從來沒有遇到在兩個單獨字段上使用BooleanQuery的問題。 – Snekse 2010-10-13 15:15:31
我還沒有測試過它,但我很確定搜索'(title:bravo OR body:bravo)'比'text:bravo'需要更長的時間 – itsadok 2010-10-14 08:03:29