GET /megacorp/employee/_search
megacorp
:索引库 employee:类型
curl ‘http://localhost:9200/?pretty‘
pretty:美化结果输出
GET /_count { "query": { "match_all": {} } }
_count:计算文档数量 query:查询
match_all:匹配所有
GET /megacorp/employee/_search { "query" : { "bool": { "must": { "match" : { "last_name" : "smith" } }, "filter": { "range" : { "age" : { "gt" : 30 } } } } } }
megacorp:索引库
employee:类型
query:查询
bool:过滤器
must:所有的语句都 必须(must) 匹配,与AND
等价。
must_not:所有的语句都 不能(must not) 匹配,与NOT
等价
should:至少有一个语句要匹配,与OR
等价
match:匹配filed包含文本match_phrase
:
filter:过滤器
range:范围过滤器
短语搜索
找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者_短语_ 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock” 和 “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着的雇员记录。
为此对 match
查询稍作调整,使用一个叫做 match_phrase
的查询:
GET /megacorp/employee/_search { "query" : { "match_phrase" : { "about" : "rock climbing" } } }