第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Lucene 4 setBoost 異常

Lucene 4 setBoost 異常

www說 2019-04-16 17:05:53
在構(gòu)建文檔時,給字段setBoost爆異常:java.lang.IllegalArgumentException:Youcannotsetanindex-timeboostonanunindexedfield,oronethatomitsnorms代碼為:Documentdoc=newDocument();Fieldf=newFloatField("x",10.0,Field.Store.YES);f.setBoost(10.0);doc.add(f);Lucene版本4.6.0,求指教!
查看完整描述

2 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗 獲得超5個贊

FieldTypefieldType=newFieldType(StringField.TYPE_STORED);
fieldType.setOmitNorms(false);
FieldcountryField=newField("country",country,getNormStringField());
countryField.setBoost("China".equals(country)?5f:1f);
FloatField是不支持setBoost的。需要創(chuàng)建自定義的FieldType
                            
查看完整回答
反對 回復(fù) 2019-04-16
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊

總算搞清楚點了,不能在omitNorms的字段上setBoost,而Lucene4.x的StringField,StoredField,IntField等都是omitNorms的,我測試發(fā)現(xiàn)只有TextField是非omitNorms的,故可以在TextFields上setBoost。
現(xiàn)在有個新的問題,給其中一個字段設(shè)置了boost,但如果條件里沒有這個字段,順序就沒任何變化。而4.x的Document上并沒有setBoost方法。
剛實踐了一個好辦法,添加了一個TextField且所有索引記錄的這個字段的值都是一個相同的字,然后在這個字段上setBoost,在查詢條件上默認(rèn)的加上這個字段的查詢,關(guān)系是SHOULD,就能實現(xiàn)按打分+相關(guān)度共同排序了。
                            
查看完整回答
反對 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號