Elasticsearch 查询怎么返回指定的字段值
使用 _source 过滤。
http://localhost:9200/_search?_source=name
这样便过滤除了 name 字段。
如果使用 Request Body 的话
GET /_search
{
"_source": "name",
"query" : {
//...
}
}
设置为false将会不返回任何 field
GET /_search
{
"_source": false,
"query" : {
"term" : { "user" : "kimchy" }
}
_source 还可以支持一些匹配规则,下面的例子来自官方文档:
GET /_search
{
"_source": "obj.*",
"query" : {
"term" : { "user" : "kimchy" }
}
}
GET /_search
{
"_source": [ "obj1.*", "obj2.*" ],
"query" : {
"term" : { "user" : "kimchy" }
}
}
GET /_search
{
"_source": {
"includes": [ "obj1.*", "obj2.*" ],
"excludes": [ "*.description" ]
},
"query" : {
"term" : { "user" : "kimchy" }
}
}
文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html
$p = array(
'index' => 'my_product',
//'id' => '1240',
'type' =>'product',
'_source' => false, //是否返回全部资源
'fields' => array( // 返回字段
'pro_name',
'pro_editdate'
)
);
请求es接口时制定fields 即可。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。