elasticdump --search条件过滤
–search条件示例
一个条件
elasticdump --input=http://127.0.0.1:9200/your_index --output=D:\\es_out\\demo3.csv --type=data --searchBody="{\"query\" : {\"match\": {\"_type\": \"import\"}}}"
多个过滤条件
使用bool进行条件组合
elasticdump --input=http://127.0.0.1:9200/your_index --output=D:\\es_out\\demo4.csv --type=data --searchBody="{\"query\": {\"bool\": {\"must\": [{\"match\": {\"id\": \"5404\"}}, {\"match\": {\"year\": \"2004\"}}]}}}"
时间范围+过滤条件
使用bool查询来将match和range查询组合起来,range指定时间范围
elasticdump --input=http://127.0.0.1:9200/your_index --output=D:\\es_out\\demo5.csv --type=data --searchBody="{\"query\": {\"bool\": {\"must\": [{\"match\": {\"_type\": \"report\"}}, {\"range\": {\"year\": {\"gte\": \"2001\", \"lte\": \"2005\"}}}]}}}"
时间范围+多个过滤条件
elasticdump --input=http://127.0.0.1:9200/your_index --output=D:\\es_out\\demo6.csv --type=data --searchBody="{\"query\": {\"bool\": {\"must\": [{\"match\": {\"id\": \"5863\"}}, {\"match\": {\"_type\": \"report\"}}, {\"range\": {\"year\": {\"gte\": \"2002\", \"lte\": \"2003\"}}}]}}}"
注意事项
- searchBodd花括号内部的双引号需要被转义,示例:
--searchBody="{\"query\" : {\"match\": {\"type\": \"import\"}}}"
- 多条件过滤,多个match之间用 , 隔开,而不是使用嵌套的方式。
{\"match\": {\"id\": \"5863\"}}, {\"match\": {\"title\": \"标题是5863\"}}
- 注意中英文冒号