2013-04-09 84 views
0

我已將彈性搜索從0.19.4更新爲0.20.6,並且沒有得到期望的結果..在按鍵之後進行動態搜索,現在行爲不同之前工作正常。彈性搜索升級後出現問題的結果

搜索:

'' = (empty field) fine 
a = 9400 hits 
ab = 126 hits ERROR 
abc = 2 hits ERROR 
abcd 0 hits fine 

依賴我已經改變了:

runtime 'org.elasticsearch:elasticsearch-lang-groovy:1.1.0' --> runtime 'org.elasticsearch:elasticsearch-lang-groovy:1.3.0' 
runtime 'org.elasticsearch:elasticsearch:0.19.4' --> runtime 'org.elasticsearch:elasticsearch:0.20.6' 
runtime 'org.xerial.snappy:snappy-java:1.0.4.1' (new) 

堆棧:

2013-04-09 10:47:58,130 [http-bio-8080-exec-2] DEBUG xxxx.SearchController - result stuff is: [hits:[email protected]] 
2013-04-09 10:47:58,137 [http-bio-8080-exec-2] ERROR xxxx.SearchController - Problem... 
org.codehaus.groovy.grails.web.converters.exceptions.ConverterException: Error converting Bean with class org.elasticsearch.search.internal.InternalSearchHit 
    at grails.converters.JSON.value(JSON.java:199) 
    at grails.converters.JSON.convertAnother(JSON.java:162) 
    at grails.converters.JSON.value(JSON.java:199) 
    at grails.converters.JSON.convertAnother(JSON.java:162) 
    at grails.converters.JSON.value(JSON.java:199) 
    at grails.converters.JSON.convertAnother(JSON.java:162) 
    at grails.converters.JSON.value(JSON.java:199) 
    at grails.converters.JSON.render(JSON.java:134) 
    at grails.converters.JSON.render(JSON.java:150) 
    at xxx.xxxx.xxxx.SearchController.autocomplete(SearchController.groovy:514) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.reflect.InvocationTargetException 
    ... 13 more 
Caused by: java.lang.NullPointerException 
    at org.elasticsearch.common.compress.lzf.LZFCompressor.isCompressed(LZFCompressor.java:76) 
    at org.elasticsearch.common.compress.CompressorFactory.compressor(CompressorFactory.java:124) 
    at org.elasticsearch.common.compress.CompressorFactory.uncompressIfNeeded(CompressorFactory.java:174) 
    at org.elasticsearch.search.internal.InternalSearchHit.sourceRef(InternalSearchHit.java:172) 
    at org.elasticsearch.search.internal.InternalSearchHit.getSourceRef(InternalSearchHit.java:181) 
    ... 13 more 

當代碼失敗:

try { 
      log.debug("result stuff is: ${results}"); 
      render results as JSON 
     } 
     catch (Exception e) { 
      log.error("Problem...",e); 
     } 
+0

看起來像JSON渲染不能識別新ES的返回參數之一.. – Mantas 2013-04-10 08:56:41

回答

0

這是由於ES結構的輕微變化,不得不改寫我的轉換方法:)