• 搜索结果
SQL
当你通过 MySQL 协议运行 SQL 查询时,结果将包含所请求的列,如果没有找到任何内容,则返回一个空的结果集。
SELECT * FROM tbl;+------+------+--------+
| id | age | name |
+------+------+--------+
| 1 | 25 | joe |
| 2 | 25 | mary |
| 3 | 33 | albert |
+------+------+--------+
3 rows in set (0.00 sec)此外,你可以使用 SHOW META 查看最近一次查询的额外元信息。
SELECT id,story_author,comment_author FROM hn_small WHERE story_author='joe' LIMIT 3; SHOW META;++--------+--------------+----------------+
| id | story_author | comment_author |
+--------+--------------+----------------+
| 152841 | joe | SwellJoe |
| 161323 | joe | samb |
| 163735 | joe | jsjenkins168 |
+--------+--------------+----------------+
3 rows in set (0.01 sec)
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| total | 3 |
| total_found | 20 |
| total_relation | gte |
| time | 0.010 |
+----------------+-------+
4 rows in set (0.00 sec)在某些情况下,例如执行 分面搜索 时,SQL 查询的响应可能包含多个结果集。
如果查询中出现警告,结果集将包含一个警告标志,你可以使用 SHOW WARNINGS 查看警告信息。
如果查询失败,你将收到一个错误
HTTP
通过 HTTP JSON 接口,查询结果将以 JSON 文档的形式发送。示例:
took: 执行搜索所用的时间(毫秒)timed_out: 查询是否超时hits: 搜索结果,包含以下属性:total: 匹配文档的总数hits: 包含匹配项的数组
查询结果还可以包含查询的剖析信息。请参阅 查询剖析。
hits 数组中的每个匹配项包含以下属性:
_id: 匹配项 ID_score: 匹配项权重,由排序器计算_source`: 包含该匹配项属性的数组
源选择
默认情况下,所有属性都会返回在 _source 数组中。您可以在请求负载中使用 _source 属性选择要包含在结果集中的字段。示例:
您可以通过字符串("_source": "attr*")或字符串数组("_source": [ "attr1", "attri*" ]")来指定要包含在查询结果中的属性。每个条目可以是属性名或通配符(支持 *、% 和 ? 符号)。
您还可以通过 includes 和 excludes 属性明确指定要包含或排除的属性:
空的 includes 列表表示“包含所有属性”,而空的 excludes 列表则不会匹配任何内容。如果某个属性同时匹配 includes 和 excludes,那么以 excludes 为准。
最后更新于