[英]simple Elasticsearch nested search query
我在ES(Tweepy JSON)中有這樣的文檔
{
"_source": {
"id": 792477813014224900,
"metadata": {
"iso_language_code": "en",
"result_type": "recent"
},
"retweeted": false,
"retweet_count": 330,
"user": {
"id": 149250899,
"listed_count": 0,
"protected": false,
"followers_count": 347,
"entities": {
"description": {
"urls": []
}
},
"screen_name": "Zwido_"
}
我想根據user_name字段搜索和查詢一個完整的文檔。 我嘗試了這段代碼
{
"nested": {
"path": "_source",
"score_mode": "avg",
"query": {
"bool": {
"must": [
{
"text": {"_source.user.user_name": user}
}
]
}
}
}
}
但這不起作用,我收到了錯誤消息
TransportError(400, 'search_phase_execution_exception', 'failed to parse search source. unknown search element [nested]
我做錯了什么? 感謝幫助。
您無需指定_source
字段,也可以在頂層缺少query
,而可以這樣做。
{
"query": {
"nested": {
"path": "user",
"score_mode": "avg",
"query": {
"bool": {
"must": [
{
"match": {"user.screen_name": user}
}
]
}
}
}
}
}
UPDATE
如果您的user
字段不是nested
類型,則可以這樣簡單地進行操作:
{
"query": {
"bool": {
"must": [
{
"match": {
"user.screen_name": user
}
}
]
}
}
}
如Elasticsearch文檔中所述,您應該更改數據映射以告訴Elasticsearch它是嵌套對象。 完成后,您可以查詢對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.