2017-04-21 139 views
0

私のドキュメントに値 ""のキーワードがありますが、どのようにjava Elasticsearchで検索できますか?Elasticsearchで長さが0の文字列を検索するには?

コードのような効果なしではありません:あなたは、文字列の長さが0であることを確認するために、scriptクエリを使用する必要が

query.must(QueryBuilders.boolQuery() 
      .should(QueryBuilders.regexpQuery("paymentRetCode", "")) 
      ); 

答えて

1

Script script = new Script(ScriptType.INLINE, "myscript", "doc.paymentRetCode.value.length() == 0", new HashMap()) 
query.must(QueryBuilders.boolQuery() 
    .should(QueryBuilders.scriptQuery(script)))) 
); 

スクリプトのクエリは理想的ではありません空の文字列でドキュメントを検出する必要がある場合は、nullを空文字列の代わりに設定する必要があります。この場合、無効なexistsクエリを使用できます。

QueryBuilders.boolQuery() 
    .mustNot(QueryBuilders.existsQuery("paymentRetCode")) 
+0

これで不運なことはありますか? – Val

関連する問題