Elasticsearch – Compare/ScriptFilter/Condition on Two Fields using Script Filter – REST Query + Java API

Elasticsearch - Compare or Script Filter or Condition on Two Fields using Script Filter - REST Query + Java API

Elasticsearch – Compare/ScriptFilter/Condition on Two Fields using Script Filter – REST Query + Java API

Example 1:

GET /INDEX/TYPE/_search
{
     "query": {
          "filtered": {
               "filter": {
                    "script": {
                         "script": "doc['field1'].value <  doc['field2'].value"
                    }
               }
          }
     }
}

Example 2:

GET /INDEX/TYPE/_search
{
     "query": {
          "filtered": {
               "filter": {
                    "script": {
                         "script": "doc['field1'].value -  doc['field2'].value > 10"
                    }
               }
          }
     }
}

Java API:

import org.elasticsearch.index.query.FilterBuilders;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.FilteredQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;

FilteredQueryBuilder query = QueryBuilders.filteredQuery(null, FilterBuilders.scriptFilter("doc['field1'].value <  doc['field1'].value"));
SearchRequestBuilder searchRequestBuilder = esClient.prepareSearch("INDEX").setTypes("TYPE").setQuery(query).setSize(10);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();

Related Links: 

Web Application for Elasticsearch :
  1. ElasticTab – Elasticsearch to Excel Report (Web Application)
Elasticsearch Plugin:
  1. Elasticsearch Plugin To Generate (Save and E-Mail) Excel Reports
Elasticsearch:
  1. Execute Multiple Search Query in Elasticsearch
  2. Monitor Elasticsearch Servers with Shell Script - E-Mail Notification
  3. Execute Raw Elasticsearch Query using Transport Client – Java API
  4. Elasticsearch – Apply Nested Filter on Nested (Inner) Aggregation
  5. Execute Multiple Search Query in Elasticsearch
  6. Enable CORS to Send Cross Domain Request to Elasticsearch using AJAX
  7. Elasticsearch Java API – Get Index List
  8. Elasticsearch Java API – Get Alias List
  9. Elasticsearch Java API - Get Type List from given Index
  10. Elasticsearch Java API – Get Field List for a given Index and Type
  11. Elasticsearch Java API – Get Index Type List Mapping
  12. Elasticsearch – Use Script Filter/Conditon in Aggregation/Sub-Aggreagtion
  13. Elasticsearch – Compare/ScriptFilter/Condition on Two Fields using Script Filter – REST Query + Java API
  14. Elasticsearch - Date/Time(String)  Add/Subtract Duration - Days,Months,Years,Hours,Minutes,Seconds
Logstash:
  1. Logstash – Process Log File Once and Exit/Stop Logstash After Reading Log File Once
  2. Measure Logstash Performance using Metrics Filter – Issue/Error in Syntax (Unknown setting ‘message’ for stdout)
  3. Logstash – Process Same Log File (File Input) from Beginning/Start
  4. Create Custom Filter/Plugin to Emit New Events Manually in Logstash
Logstash and Elasticsearch:
  1. Query Elasticsearch Cluster in Filter Section when using Logstash
  2. Custom Elasticsearch Index Name/Type Name based on Events in Logstash
MongoDB and Elasticsearch:
  1. Import Data from Mongo DB to Elasticsearch using Elasticsearch River
 Read More...

[ YOU MAY ALSO LIKE ]

Leave a Reply