如何构造Elasticsearch索引

时间:2018-09-18 19:02:33

标签: elasticsearch indexing lucene full-text-search

我正在尝试在应用程序中将MySQL全文搜索替换为Elasticsearch,但是我不确定如何优化设计数据结构并执行搜索。现在,我的所有数据都在一个Elasticsearch索引中,例如以下示例:

{
  "_index": "posts",
  "_type": "post",
  "_id": "1",
  "_version": 1,
  "found": true,
  "_source": {
    "@version": "1",
    "title": "The post title",
    "description": "The post description",
    "tags": ["foo", "bar"],
    "content": "A long content string",
    "user_name": "John",
    "user_id": 1,
    "post_id": 1,
    "@timestamp": "2018-09-17T14:05:51.424Z"
  }
}

到目前为止,我还没有指定映射。现在,我需要执行3个难以实现的搜索,但在mysql中效率低下:

  1. 根据用户输入的受欢迎程度自动完成标签(如stackoverflow一样...)
  2. 基于受欢迎程度的用户搜索
  3. 描述和内容字段中的全局帖子搜索

我已经看过“完成建议器”,但是它似乎无法进行“人气”搜索。

那么,满足这些要求的最佳索引/搜索策略是什么?

0 个答案:

没有答案