写点什么

Elasticsearch 一个 field 两个索引

用户头像
escray
关注
发布于: 2021 年 02 月 25 日
Elasticsearch 一个 field 两个索引

内容来自 B 站中华石杉 Elasticsearch 顶尖高手系列课程核心知识篇


如果对一个 string field 进行排序,结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了


通常解决方案是,将一个 string field 建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序


PUT /website {  "mappings": {    "article": {      "properties": {        "title": {          "type": "text",          "fields": {            "raw": {              "type": "string",              "index": "not_analyzed"            }          },          "fielddata": true        },        "content": {          "type": "text"        },        "post_date": {          "type": "date"        },        "author_id": {          "type": "long"        }      }    }  }}
PUT /website/article/1{  "title": "first article",  "content": "this is my second article",  "post_date": "2017-01-01",  "author_id": 110}
{  "took": 2,  "timed_out": false,  "_shards": {    "total": 5,    "successful": 5,    "failed": 0  },  "hits": {    "total": 3,    "max_score": 1,    "hits": [      {        "_index": "website",        "_type": "article",        "_id": "2",        "_score": 1,        "_source": {          "title": "first article",          "content": "this is my first article",          "post_date": "2017-02-01",          "author_id": 110        }      },      {        "_index": "website",        "_type": "article",        "_id": "1",        "_score": 1,        "_source": {          "title": "second article",          "content": "this is my second article",          "post_date": "2017-01-01",          "author_id": 110        }      },      {        "_index": "website",        "_type": "article",        "_id": "3",        "_score": 1,        "_source": {          "title": "third article",          "content": "this is my third article",          "post_date": "2017-03-01",          "author_id": 110        }      }    ]  }}
GET /website/article/_search{  "query": {    "match_all": {}  },  "sort": [    {      "title.raw": {        "order": "desc"      }    }  ]}
复制代码


发布于: 2021 年 02 月 25 日阅读数: 19
用户头像

escray

关注

Let's Go 2017.11.19 加入

在学 Elasticsearch 的项目经理

评论

发布
暂无评论
Elasticsearch 一个 field 两个索引