美文网首页ElasticSearch入门玩转大数据大数据 爬虫Python AI Sql
三十六、Elasticsearch初识搜索引擎-query st

三十六、Elasticsearch初识搜索引擎-query st

作者: 编程界的小学生 | 来源:发表于2017-07-09 11:49 被阅读87次

1、query string基础语法
看如下三个Demo即可

GET /test_index/test_type/_search?q=test_field:test
查询test_filed字段值包含test的document

GET /test_index/test_type/_search?q=+test_field:test
查询test_field字段值必须包含test的document,和上面那个一样

GET /test_index/test_type/_search?q=-test_field:test
查询test_field字段值必须不包含test的document

一个是掌握q=field:search content的语法,还有一个是掌握+和-的含义

2、_all元数据的原理和作用
GET /test_index/test_type/_search?q=test

直接可以搜索所有的filed,只要他的值包含test,任意一个field包含指定的关键字就可以搜索出来。难道是对document中的每一个field都进行一次搜索然后对比看是否包含test吗? 当然不是!!!

这就涉及到了一个_all元数据,ES的_all元数据,在建立索引的时候,我们插入一条document,他里面包含了多个field,此时,ES会自动将多个field的值,全部用字符串的方式拼接起来,变成一个长的字符串,作为_all field的值,同时建立索引。
比如

{
  "name": "jack",
  "age": 26,
  "email": "jack@sina.com",
  "address": "guamgzhou"
}

会变成如下
"jack 26 jack@sina.com guangzhou",作为这一条document的_all field的值,同时进行分词后建立对应的倒排索引。

说明:如果在搜索的时候,没有对某个field指定搜索,而是直接搜索内容,比如?q=test,那么就是搜索_all field,其中是包含了所有field的值的。

若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:


qrcode_for_gh_577b64e73701_258.jpg

相关文章

网友评论

    本文标题:三十六、Elasticsearch初识搜索引擎-query st

    本文链接:https://www.haomeiwen.com/subject/dqushxtx.html