How to query lucene for empty fields?

2019-02-05 22:15发布

问题:

I want in 2nd part of my query to have a list of result for while data not null. I find how do it in solr but not in lucene. Anyone have a idea Thanks

String :

( field_one:search AND field_two:3000) OR (field_three:search AND field_two:3000 AND NOT NULL field_one )

Query:

+field_one:search +field_two:3000 +field_three:search +field_two:3000 -field_one:null

回答1:

*:*  -MY_FIELD_NAME:[* TO *] 

The above should do it, note the * : * for Lucene.



回答2:

*:* -MY_FIELD_NAME:[* TO "zzzzzzzzzz"]

You can add more "z" chars to ensure to include any value of the field.



回答3:

-_exists_:field_one works for me in ElasticSearch 6.0

reference: https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-query-string-query.html#_field_names



标签: lucene field