字符串搜索中用到的有:java
+ 表示条件都知足(表示“而且”关系)curl
- 表示必须的不知足(表示“非”关系)url
什么都没有则表示 可选(或者关系)spa
经常使用的 encoder后用到的自符:%2B表示+ %3A冒号 -表示的仍是- 具体的方式在java中能够根据:URLEncoder.encode 来查看code
查询全部的索引下的数据信息 duanlshdeMacBook-Pro:bin duanlsh$ curl -i -XGET 'http://localhost:9200/_search?pretty'
普通的搜索 表示在全部索引下的数据中 筛选 last_name 为Smith的数据:索引
duanlshdeMacBook-Pro:bin duanlsh$ curl -i -XGET 'http://localhost:9200/_search?q=last_name:Smith&pretty'
普通搜索 表示在全部索引下的数据中 全部字段中包含 Smith的数据:文档
duanlshdeMacBook-Pro:bin duanlsh$ curl -i -XGET 'http://localhost:9200/_search?q=Smith&pretty'
注:在全部的字段中搜索至关于数据被拼接成啦 各个字段相累加的一个 _all的字段字符串
当你索引一个文档,Elasticsearch把全部字符串字段值链接起来放在一个大字符串中,它被索引为一个特殊的字段_all。例如,当索引这个文档: { "tweet": "However did I manage before Elasticsearch?", "date": "2014-09-14", "name": "Mary Jones", "user_id": 1 } 这比如咱们增长了一个叫作_all的额外字段值: "However did I manage before Elasticsearch? 2014-09-14 Mary Jones 1" 若没有指定字段,查询字符串搜索(即q=xxx)使用_all字段搜索。
使用都知足的 而且条件 it
这里的+表示或者(连接)的意思[last_name为John 或者 Jane 或者 Douglas] curl -i -XGET 'http://localhost:9200/_search?q=last_name:(John+Jane+Douglas)&pretty' 这里的 + 表示的是 连接的意思 %2B表示的是而且的意思[last_name为John 或者 Jane 或者 Douglas,而且 last_name为:Smith] duanlshdeMacBook-Pro:bin duanlsh$ curl -i -XGET 'http://localhost:9200/_search?q=first_name:(John+Jane+Douglas)+%2Blast_name:Smith&pretty' 这里的 + 表示的是 连接的意思 %2B表示的是而且的意思[last_name为John 或者 Jane 或者 Douglas,而且 last_name为:Smith 而且 在_all中包含love] duanlshdeMacBook-Pro:bin duanlsh$ curl -i -XGET 'http://localhost:9200/_search?q=first_name:(John+%2BJane+Douglas)+%2Blast_name:Smith+%2Blove&pretty'