mysql - 提取的 json 列上的 MySQL 全文搜索
问题描述
我正在寻找使用 MySQL 的全文搜索和 json 列功能处理的特定场景的答案。
我将非结构化/无模式数据存储在要启用全文搜索的 json 列中。我相信每个人都知道 MySQL 不允许在 json 列上进行 FTS。但是有一些方法可以解决它,我已经确定了一个,但我不确定从长远来看它会产生什么影响。
许多人建议将需要搜索的数据复制到生成的列中。我不能这样做,因为正如我所说,我的数据没有任何架构,并且为所有可能性创建生成的列对我来说是不切实际的,它首先会破坏使用 json 的目的。
所以我考虑只使用一个生成的列,它从源 json 列中获取整个数据,并使用 MySQL 的 json_extract() 将其存储为 json 文本。这似乎工作正常,我对结果感到满意。但是,我不确定一件事。存储 json 文字意味着存储除了实际数据之外的其他冗余内容,例如属性键/名称。考虑到全文搜索的工作原理(倒排索引和所有),当数据开始增长时,这样的冗余信息会对搜索产生任何影响吗?不用担心用户尝试使用 json 键搜索数据,而是担心是否包含每行中的这些键是否会影响 FTS 性能?
最后一件事,是的,我已经完成了我的功课,我知道还有其他更好的方法来进行全文搜索,但是由于我的情况,我选择了这条路,我需要一个非常可靠的理由来研究替代解决方案。
解决方案
推荐阅读
- oop - 如何为泛型类型建模
- python - 运行使用 pyinstaller 创建的 exe 时没有名为“py4j.java_collections”的模块
- hadoop - 由于:OWN_TASK_FAILURE 而被杀死/失败] DAG 由于 VERTEX_FAILURE 而没有成功
- python - Json 文件以 b- 开头
- python - 如何知道哪个子模块与 python 模块一起使用?无法为 docker 镜像创建 requirements.txt
- java - 当单击 JTable 单元格内的 JComboBox 时,JComboBox 在 JTable 之外消失
- python - 有没有办法使用一个命令设置图中所有文本的格式?
- javascript - Is possible to disable fill payment forms for the entire body (including a inner iFrame)?
- sql - Cannot resolve column from input columns after second join
- twilio - Line Feed in Autopilot Actions JSON