_all
字段(全文字段)
返回包含"mary"
字符的所有文档的简单搜索:
GET /_search?q=mary
这个语句返回的结果在三个不同的字段中包含"mary"
:
-
用户的名字是“Mary”
-
“Mary”发的六个推文
-
针对“@mary”的一个推文
Elasticsearch是如何设法找到三个不同字段的结果的?
当你索引一个文档,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
字段搜索。