elasticsearch返回指定字段


1. 請求elasticsearch 返回指定字段

  a._source指定需要返回的字段

{

  "_source":['title','id','desc'],
  "from":10,
  "size":100,

}
{
    "_source":{
        "includes":["title","url","id"],
        "excludes":["desc"]
    }
}

 

  b.其中includes代表需要返回的字段,excludes代表不要返回的字段

  c.直接在請求url帶上需要查詢參數

curl -XGET 'localhost:9200/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score'
{
  "took" : 3,
  "hits" : {
    "hits" : [
      {
        "_id" : "3640",
        "_score" : 1.0
      },
      {
        "_id" : "3642",
        "_score" : 1.0
      }
    ]
  }
}

4.對_source的字段進行過濾

{
  "hits" : {
    "hits" : [ {
      "_source":{"title":"Book #2"}
    }, {
      "_source":{"title":"Book #1"}
    }, {
      "_source":{"title":"Book #3"}
    } ]
  }
}


_search?_source=goodsId,uri

_search?fields=goodsId,uri

2.python 對接elassearch ,指定返回字段

  1.實例化的es客戶端,然后調用search方法,傳入參數,params

 
         
from elasticsearch import Elasticsearch
es=Elasticseach(xxxx) es.search(params={"_source":"title,id,desc,url"})

   注:這邊調用的是包中的search方法,和postman不一樣的是,_source的值是一個z字符串,不同字段用逗號隔開,而post滿是一個列表

   2.也是調用Elasticsearch的search方法,傳入參數不是param,而直接是_source字段

   2.也是調用Elasticsearch的search方法,傳入參數不是param,而直接是_source字段

print(es.search(index='person', body={"query": {"match": {"age": "19"}}}, _source=['name']))

  結果:

復制代碼
{'_shards': {'failed': 0, 'skipped': 0, 'successful': 1, 'total': 1},
 'hits': {'hits': [{'_id': 'xFznIXIBMTX0DMkCyicV',
                    '_index': 'person',
                    '_score': 1.0,
                    '_source': {'name': 'lisi'},
                    '_type': 'male'}],
          'max_score': 1.0,
          'total': {'relation': 'eq', 'value': 1}},
 'timed_out': False,
 'took': 1}
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM