lucene升级至5.x版本出现 :IllegalStateException: IllegalStateException: unexpected docvalues type NONE...
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
這前使用的lucene4.7版本,程序正常,現(xiàn)在升級(jí)到5.1時(shí),索引文件正常,但在搜索的時(shí)候,出現(xiàn):
java.lang.IllegalStateException: unexpected docvalues type NONE for field 'date' (expected=NUMERIC). Use UninvertingReader or index with docvalues.后才知道,是因?yàn)镾ort排序?qū)λ饕侄斡辛诵碌囊?#xff0c;即使用DocValuesField的字段才能進(jìn)行排序。
查詢doc文檔,最終解決方法如下:
原來(lái)的代碼:
dfDocument.add(new LongField("id", id,Field.Store.YES));
現(xiàn)在的代碼:
dfDocument.add(new NumericDocValuesField("id",id)); ?
替換后一切OK,如果你想在查詢中獲取ID的字段值,那就多加一條排序的字段,那保留原代碼,然后加一條:
dfDocument.add(new NumericDocValuesField("sortid",id)); ?
查詢的時(shí)候,使用new Sort(new SortField("sortid", SortField.Type.LONG, true));作為排序。
轉(zhuǎn)載于:https://my.oschina.net/liuyuantao/blog/1477086
總結(jié)
以上是生活随笔為你收集整理的lucene升级至5.x版本出现 :IllegalStateException: IllegalStateException: unexpected docvalues type NONE...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux里的稀疏文件
- 下一篇: C#和JS交互 WebBrowser实例