老师您好,有两个关于数据存储的问题想问您。

来源:9-7 门店索引构建(下)

醒着长眠

2021-09-08

  1. 在课程中, tags 字段存储在 es 中时, tags 还是设置为 text 字段, 通过 whitespace 分词器, 分词后再做聚合。
    我看到 es 可以通过 pipeline processors 将 tags 处理为数组。
    想问下您是否可以将这个 tags 字段设置为 keyword 类型, 转换为数组后, 再做聚合, 这样也可以不使用fielddata
POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "description": "split mendian tags",
    "processors": [
      {
        "split": {
          "field": "tags",
          "separator": " "
        }
      }
    ]
  },
  "docs": [
    {
      "_index": "index",
      "_id": "id",
      "_source": {
        "tags": "新开业 人气爆棚",
        "name": "和府捞面(正大乐城店)"
      }
    }
  ]
}

## 结果
{
  "docs" : [
    {
      "doc" : {
        "_index" : "index",
        "_type" : "_type",
        "_id" : "id",
        "_source" : {
          "name" : "和府捞面(正大乐城店)",
          "tags" : [
            "新开业",
            "人气爆棚"
          ]
        },
        "_ingest" : {
          "timestamp" : "2021-09-07T15:55:05.349583Z"
        }
      }
    }
  ]
}
  1. 第二个问题是如果想把一篇文章做分词处理, 方便用户搜索. 这篇文章是通过富文本编辑器制作的, 中间的有很多 html 标签, 那么文章数据向 es 存储时是否需要将标签先过滤掉, 将文章转换为纯文字的形式, 再放到 es 中做分词, 而原始的文章还是放在 mysql 中?

以上是我的问题, 愿老师可以在闲暇时间给予解答, 谢谢啦

写回答

1回答

龙虾三少

2021-09-09

第一个问题可以 第二个问题zhengjie

0
1
醒着长眠
好的 谢谢老师
2021-09-09
共1条回复

ES7+Spark 构建高匹配度搜索服务+千人千面推荐系统

ElasticSearch实现高相关性搜索,Spark MLlib实现个性化推荐

1384 学习 · 559 问题

查看课程