老师您好,有两个关于数据存储的问题想问您。
来源:9-7 门店索引构建(下)
醒着长眠
2021-09-08
- 在课程中, 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"
}
}
}
]
}
- 第二个问题是如果想把一篇文章做分词处理, 方便用户搜索. 这篇文章是通过富文本编辑器制作的, 中间的有很多 html 标签, 那么文章数据向 es 存储时是否需要将标签先过滤掉, 将文章转换为纯文字的形式, 再放到 es 中做分词, 而原始的文章还是放在 mysql 中?
以上是我的问题, 愿老师可以在闲暇时间给予解答, 谢谢啦
写回答
1回答
-
第一个问题可以 第二个问题zhengjie
012021-09-09
相似问题