mysql 同义词_在数据库mysql中存储和检索同义词的最佳方法
我正在创建一个同义词列表,我将它存储在数据库中并在进行全文搜索之前检索它.
当用户输入如下:word1
我需要在我的同义词表中查找这个单词.所以,如果找到这个单词,我会选择这个单词的所有同义词,并在下一个查询的全文搜索中使用它,我在那里构建查询
MATCH(columnname)AGAINST((word1a word1b word1c)在BOOLEAN MODE中)
那么如何将同义词存储在表中?我找到了两个选择:
>使用键和单词列
val keyword
-------------
1 word1a
1 word1b
1 word1c
2 word2a
2 word2b
3 word3a
etc.
那么我可以在一个查询中找到输入单词的完全匹配并找到它的ID.在下一个选择中,我获得具有该ID的所有单词,并以某种方式使用服务器端语言中的记录集循环来连接它们.然后,我可以在主表上构建我需要查找单词的真实搜索.
>只使用像word这样的单词列
word1a|word1b|word1c
word2a|word2b|word2c
word3a
现在我是SELECT语言,如果它在任何记录中,如果是,则提取所有记录并在|中将其爆炸我再次说出我可以使用的话.
第二种方法看起来更易于维护这个同义词数据库的人,但我看到了两个问题:
a)如果字符串中有单词,我如何在mysql中找到?我不能像’word1a’那样,因为synonims可能非常相似,word1a可能是strowberry,strowberries可能是鸟类,而2a可能是浆果.显然我需要完全匹配,那么LIKE语句如何在字符串中完全匹配?
b)我看到一个速度问题,使用LIKE我想使用第一种方法,我完全匹配一个单词,使用比“=”更多的mysql.另一方面,在第一个选项中,我需要2个语句,一个用于获取单词的ID,第二个用于获取具有此ID的所有单词.
你会如何解决这个问题,更多的是采取何种方式采取的两难选择?有没有第三种方法我没有看到管理员很容易添加/编辑同义词,同时快速和最佳?好的我知道通常没有最好的方法;-)
更新:使用两个表一个用于主词,第二个用于同义词的解决方案在我的情况下不起作用.因为我没有用户在搜索字段中输入的MASTER字样.他可以在字段中键入任何同义词,所以我仍然想知道如何设置这个表,因为我没有主单词,我将在一个表中具有ID,并且在第二个表中与主单元的ID同步.没有主词.
mysql 同义词_在数据库mysql中存储和检索同义词的最佳方法相关推荐
- mysql关系数据库_关系型数据库MySql简介
什么是关系型数据库? 数据库就是用来存储数据的仓库,是一种特殊的文件. 根据存储的数据不同,划分为关系型数据库和非关系型数据库. 关系型数据库就是指 建立在关系模型基础上的数据库,通俗来讲这种数据库就 ...
- asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...
有一个原因是不经常使用静态字段,原因是静态字段的灵活性不如非静态字段,因为静态字段只能有一个副本,但非静态字段可以容纳每个对象实例的值不同. 通过使用静态字段,您将限制自己只有一个玩家.如果你想做多人 ...
- mysql单价乘以数量_数据库字段中存储的数据数量乘以不同单价的和的算法示例...
数据库字段中存储的数据数量乘以不同单价的和的算法,适用于记账本程序的计件数据记录,和商品记录等场景. 代码示例如下: //模拟数据库结果集 $arr = array( array( "id& ...
- mysql 存树 闭包表_关系型数据库树形关系存储-闭包表
前言 在关系型数据库中,有一种逻辑关系比较难处理,这种就是树形结构.目前有很多主流的处理方案,比如说直接在业务表中存储上一级id,这样就可以用递归查询SQL的形式找到某一节点的父节点,子节点,或者兄弟 ...
- mysql按条件提取数据库_SQL中的where条件,在数据库中提取与应用浅析
1 问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语 ...
- mysql云数据库 磁盘利用率_云数据库MySQL参数的那些事儿
MySQL数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务.本文列举了一些重要参数说明,更多参数详细说明,请参见MySQL官网. 修改敏感参数 若干参数相关说明如下:&quo ...
- mysql创建全外连接的视图_关系型数据库 MySQL 表索引和视图详解
原创: JiekeXu JiekeXu之路 一.索引 数据库索引通俗的讲就是和书本的目录一样,主要就是为了提高查询数据的效率.由于数据存储在数据库表中,所以索引是创建在数据库表对象上,由表中的一个字段 ...
- 爬虫mysql数据清洗_爬虫分析之数据存储——基于MySQL,Scrapy
配置MySql 关于MySQL在Ubuntu的Pycharm上的配置,可以参考这篇文章中的第三部分 如果上面的步骤处理完毕后找不到你新建的数据库, 可以参照下图配置 勾选要显示的Schemas(数据库 ...
- mysql自愈_云数据库时代的 Db2 自愈系统
概述 笔者于 2005 年加入 IBM 中国开发实验室,从事 Db2 研发工作 8 年,在 2014 年又加入中信银行.8 年的 IBM 原厂工作经验和 4 年多的银行工作经历让我有幸见证了 Db2 ...
- 支付宝的数据库是MySQL变种_浅谈MySql的储存引擎(表类型)
浅谈mysql的存储引擎(表类型) 什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库, ...
最新文章
- 独家 | 文本数据探索性数据分析结合可视化和NLP产生见解(附代码)
- 20101029总结
- C# - Marshal 学习总结
- linux ctrl c 子进程,ctrl c会向Linux中的父进程和子进程发送SIGINT信号吗?
- java linux root权限管理_Linux--开启root用户并允许管理员登录
- 配置codeblocks 的养眼colour theme ;鼠标颜色与型状配置,界面汉化,以及调试入门
- iOS中的谓词(NSPredicate)使用
- Guitar Pro8(简称GTP8)正式版吉他谱神器
- python笔记:7.2.2.2 一元多因素方差分析_交互效应图(购房面积影响因素交互效应)
- prometheus grafana sql 常用函数参数
- java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver错误
- 面向削峰填谷的电动汽车多目标优化调度策略——附代码
- 【最全】ISTQB- FL模拟题(含答案)
- arm服务器安装docker及docker-compose
- win10 程序最小化不在任务栏了?在左下角
- 笔记本计算机无法打开,笔记本电脑开不了机怎么办 笔记本开不了机解决方法【详解】...
- Linux基本功十二:shell脚本流程控制
- 华中科技大学计算机学院辅导员,计算机学院辅导员寒假走访学生家庭
- 脉冲编码器A、B、Z相正余弦波转换为RS-485输出
- 深度学习论文阅读目标检测篇(二):Fast R-CNN《Fast R-CNN》