Skip to content

Instantly share code, notes, and snippets.

@jiqiujia
Last active September 12, 2018 03:50
Show Gist options
  • Save jiqiujia/818c2ed2f7cacdb4e60e145b0a8b6767 to your computer and use it in GitHub Desktop.
Save jiqiujia/818c2ed2f7cacdb4e60e145b0a8b6767 to your computer and use it in GitHub Desktop.
elasticsearch demo
{
"mappings": {
"docs": {
"dynamic": true,
"properties": {
"time": {
"type": "date",
"format": "yyyyMMdd",
"store": "true"
},
"id": {
"type": "keyword",
"store": "true"
},
"name": {
"type": "text",
"store": "true",
"analyzer": "whitespace"
},
"content": {
"type": "text",
"index": "false",
"store": "true"
},
"content_string": {
"type": "text",
"store": "true",
"analyzer": "whitespace"
},
"tag": {
"type": "text",
"store": "true"
},
"imgurl": {
"type": "text",
"index": "false",
"store": "true"
},
"type": {
"type": "keyword",
"store": "true"
},
"source": {
"type": "keyword",
"store": "true"
},
"category": {
"type": "keyword",
"store": "true"
},
"tag_weight": {
"type": "text",
"index": "false",
"store": "true"
},
"keyword": {
"type": "text",
"store": "true",
"analyzer": "whitespace"
},
"keyword_weight": {
"type": "text",
"index": "false",
"store": "true"
},
"new_keyword": {
"type": "nested",
"properties": {
"key": {
"type": "keyword"
},
"weight": {
"type": "double"
}
}
},
"entity": {
"type": "text",
"store": "true",
"analyzer": "whitespace"
},
"event": {
"type": "text",
"store": "true"
},
"publishtime": {
"type": "date",
"format": "yyyyMMdd",
"store": "true",
"ignore_malformed": "true"
},
"eventid": {
"type": "text",
"store": "true"
},
"author": {
"type": "keyword",
"store": "true"
},
"extrainfo": {
"type": "text",
"index": "false",
"store": "true"
},
"score": {
"type": "double",
"store": "true"
},
"cate_score": {
"type": "double",
"store": "true"
},
"group_info": {
"type": "text",
"index": "false",
"store": "true"
},
"similar_doc_info": {
"type": "text",
"index": "false",
"store": "true"
}
}
}
}
}
#nested bool query
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"nested": {
"path": "new_keyword",
"query": {
"bool": {
"must": [
{
"term": {
"new_keyword.key": "深圳"
}
}
]
}
}
}
},
{
"nested": {
"path": "new_keyword",
"query": {
"bool": {
"must": [
{
"term": {
"new_keyword.key": "公园"
}
}
]
}
}
}
}
],
"filter": [
{
"term": {
"category": "旅游"
}
},
{
"term": {
"type": "article"
}
}
]
}
},
"sort": [{
"new_keyword.weight": {
"order": "desc",
"mode": "avg",
"nested_path": "new_keyword",
"nested_filter": {
"term": {
"new_keyword.key": "深圳"
}
}
}
},
{"new_keyword.weight": {
"order": "desc",
"mode": "avg",
"nested_path": "new_keyword",
"nested_filter": {
"term": {
"new_keyword.key": "公园"
}
}
}
}]
}
###Or use "sort" by painless script
{
"sort": {
"_script": {
"type": "string",
"order": "desc",
"script": {
"lang": "painless",
"params": {
"kws": [
"深圳",
"公园"
]
},
"inline": "double s = 0; for (int i = 0; i < params.kws.length; i++){ for (item in params._source.new_keyword) { if(item.key==params.kws[i]) s += item.weight }} return s"
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment