ES query does not support [auto_generate_synonyms_phrase_query]


測試環境使用  elasticsearch-rest-high-level-client  做為基礎包發起es調用出現如下異常:

{"error":{"root_cause":[{"type":"parsing_exception","reason":"[match] query does not support [auto_generate_synonyms_phrase_query]","line":1,"col":337}],"type":"parsing_exception","reason":"[match] query does not support [auto_generate_synonyms_phrase_query]","line":1,"col":337},"status":400}
        at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:705) ~[elasticsearch-rest-client-6.3.0.jar:6.3.0]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235) ~[elasticsearch-rest-client-6.3.0.jar:6.3.0]
        at org.elasticsearch.client.RestClient.performRequest(RestClient.java:198) ~[elasticsearch-rest-client-6.3.0.jar:6.3.0]
        at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:522) ~[elasticsearch-rest-high-level-client-6.3.0.jar:6.3.0]
        at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:508) ~[elasticsearch-rest-high-level-client-6.3.0.jar:6.3.0]
        at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:404) ~[elasticsearch-rest-high-level-client-6.3.0.jar:6.3.0]
        at com.sf.ccsp.syn

百度發現版本不一致 生產環境使用的es版本是5.4.1。其他答案是版本不一致就讓本地的 es版本和服務器的版本保持一致,這的確是一個方法,但是本地封裝了很多jar包了,我也嘗試了降級但是必須  elasticsearch-rest-high-level-client 版本與elasticsearch版本一同降級,但是 elasticsearch-rest-high-level-client 降到5.x版本還會出現新的問題,和現有的不兼容。

解決辦法就是使用6.0.0 的 包 elasticsearch-rest-high-level-client 與elasticsearch  都使用這個版本的包,這個版本MatchQueryBuilder  還沒有參數auto_generate_synonyms_phrase_query,MatchPhraseQueryBuilder也沒有zero_terms_query多余的參數,詳情可以見源碼自己查看。

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>6.0.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>elasticsearch</artifactId>
                    <groupId>org.elasticsearch</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>6.0.0</version>
        </dependency>

 

 
        
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM