MySQL 中使用 InnoDB 进行全文搜索

2023-11-21

我有一个 MySQL 数据库(版本 5.5.28),其中有一个如下表:

products (InnoDB)
-------------------------------------------------
search_id     title               description
1             Levi Blue Jeans     Some cool jeans 
2             Gucci Handbag       Great accessory
3             Prada Dress         Beautiful dress

我想在 MySQL 中做这样的事情:

SELECT MATCH(title) AGAINST ('Jeans') AS score, search_id, FROM search WHERE MATCH(title) AGAINST ('Jeans' IN BOOLEAN MODE)

据我所知,你只能在 MyISAM 中做到这一点。是否可以使用 InnoDB 进行类似的搜索,而无需求助于以下内容:

  • Sphinx
  • 弹性搜索
  • 获取 MySQL 5.6.4 似乎还不稳定

对于我的应用程序(大约 1000 - 2000 条记录)Sphinx 等似乎有点矫枉过正。但是将每条记录放入数组并使用 PHP 进行搜索似乎也太多了。但也许你不同意。

附言。 LIKE 似乎不太适合我。结果通常不太准确,并且您无法像使用 MATCH 那样获得分数。


复制文本列products到一个新的 MyISAM 表。 两者之间建立1-1的关系,并且,为了保证InnoDB提供的ACIDity,请确保始终与MyISAM表一起访问products.

您可能想要添加触发器products来维持双射。您还可以创建一个视图,以便在升级到 MySQL v5.6 时将应用程序中的返工降至最低(并放弃这个复杂的解决方法)。

Here is 光猪六壮士.

您可以将其完全移动(将其从products, 那是)。这会更高效,但当您想要升级时,切换到仅 InnoDB 解决方案也会变得更加复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 中使用 InnoDB 进行全文搜索 的相关文章

  • 连接错误 - SQLSTATE[HY000] [2002] 操作超时

    我在从 Windows 2008 R2 应用程序服务器连接到也在 Windows 2008 R2 上运行的 MySQL 服务器时遇到问题 Laravel 应用程序报告错误 exception PDOException with messag
  • MySQL 一起使用 LIKE、AND、OR

    我正在创建一个搜索功能来搜索一些图片 每张图片都有一个状态 表示它是被批准还是被拒绝 mysql 在返回之前检查状态 但是它仍然返回不应该返回的图像 这是我的查询 SELECT FROM Pictures WHERE ImageTitle
  • html iframe 中的字符错误

    对不起我的英语我说西班牙语 我正在尝试显示多个php and mysql将在 iframe 内显示的注册 问题是 iframe 向我显示特殊字符的错误 例如 重音符号 感叹号等 D ndecuestamenosyseconsumem s 这
  • 如何在 MySQL 中存储工作日列表?

    我正在使用编写一个应用程序PHP我需要存储一个独特的工作日列表MySQL 在应用程序中 我有一个数组来存储工作日 如下所示 days Wed Thu Sat 我知道我可以使用SET列 但我不想使用这种类型 因为它与我正在使用的框架 Lara
  • 获取两个不同日期列的计数并按日期分组

    我有包含两个 DATE 列的表 TS customer 和 TS verified 我正在寻找一种方法来获取结果 在第一列中 我有某人创建用户 TS customer 或某人经过验证 TS verified 的日期 在第二列中 我希望 co
  • 'SQLSTATE[HY093]:参数数量无效:绑定变量的数量与令牌数量不匹配'[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我收到 SQLSTATE HY093 的错误 参数编号无效 绑定变量的数量与标记的数量不匹配 if isset POST cada
  • 如何在codeigniter中引用数据库连接?

    如何在 CodeIgniter 数据库处理程序对象中手动调用 PHP 数据库函数 如何检索连接 dbc 或者调用类似的函数mysql real escape string dbc variable 您可以调用任何 mysql 本机函数并访问
  • 如何向 MySQL 中的 ENUM 类型列添加更多成员?

    MySQL 参考手册没有提供关于如何执行此操作的明确示例 我有一个 ENUM 类型的国家 地区名称列 我需要向其中添加更多国家 地区 实现此目的的正确 MySQL 语法是什么 这是我的尝试 ALTER TABLE carmake CHANG
  • FIND_IN_SET 具有多个值[重复]

    这个问题在这里已经有答案了 我想从数据库字段搜索多个值 以下是我的查询 SELECT FROM tablename WHERE FIND IN SET 12 13 15 15 category id 我如何搜索它对我不起作用 FIND IN
  • 使用 PHP 将 mysql 值转储到 JSON 文件中

    我正在尝试使用 PHP 从 mysql 数据库生成 JSON 文件 到目前为止 我有
  • sql/mysql 过滤器仅包含最大值

    我有一个像这样的结果集 ID name myvalue 1 A1 22 2 A2 22 3 A3 21 4 A4 33 5 A5 33 6 A6 10 7 A7 10 8 A8 10 9 A9 5 我想要的是仅包含包含可用的最高 myval
  • Laravel 5.5 中的主从配置

    如何配置 Laravel 5 5 主从 MySQL 复制 我想分别在master和slave上进行写操作和读操作 可选 有没有办法在理想条件下进行连接池和打开连接的最大 最小数量 只需改变你的config database php文件包含读
  • Laravel 雄辩的 withCount() 应该比 with() 慢

    所以我问这个的原因是在我当前的应用程序中withCount 与仅通过以下方式获取关系的所有数据相比 响应时间几乎增加了三倍with 并只是从前端获取长度 javascript 我认为使用的要点withCount 是为了加快查询速度 但也许我
  • 如何将mysql数据库移动到另一个安装点

    我有一个 MySQL 数据库 它变得越来越大 我想将整个数据库移动到另一个安装点 在那里我有足够的存储空间 我希望传输当前数据 并将新数据保存到新位置 软件堆栈 在 FreeBSD 6 上运行的 MySQL 5 当然其他答案也是有效的 但如
  • MySQL 连接逗号分隔字段

    我有两张桌子 第一个表是batch在字段 batch 中包含逗号分隔的学生 ID 的表 batch id batch 1 1 2 2 3 4 第二个表是分数 marks id studentid subject marks 1 1 Engl
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • 创建用于存储高尔夫球成绩的可扩展数据库架构

    我正在尝试设计一个数据库来存储我所有的朋友和我的高尔夫球成绩 您可能知道 高尔夫得分由 18 洞的个人得分组成 我可以想到两种设计模式的方法 创建一个表 每个洞有一列 例如 h1 到 h18 该表具有引用其他表的 FK player id
  • django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

    我在尝试连接 mysql 数据库时遇到的问题 我还给出了我使用过的数据库设置 Traceback most recent call last File manage py line 10 in
  • 搜索/排序算法 - 是否有类似 GoF 的列表?

    我是一名自学成才的开发人员 坦率地说 我不太擅长找出在任何特定情况下使用哪种搜索或排序算法 我只是想知道是否有设计模式 esque 列出了以太坊中可用的常见算法 供我添加书签 就像是 算法名称 带有别名 如果有的话 它解决的问题 大O成本
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj

随机推荐

  • 在动态分配的二维数组上使用 realloc() 是个好主意吗?

    我主要对它的可行性感兴趣缩小这样的数组 我正在开发一个项目 其中我使用单个 malloc 调用来每个创建单独的中等大小的二维数组 每个阵列最多只有几十 MiB 问题是 在其中一个阵列的生命周期内 其内容的大小会急剧缩小 减少一半以上 显然
  • 了解合并排序优化:避免复制

    我在算法书中有下面的合并排序程序 其中提到主要问题是合并两个排序列表需要线性额外内存 并且在整个算法中复制到临时数组并返回所花费的额外工作会减慢速度大幅下降 通过在递归的交替级别明智地切换 a 和 tmp array 的角色可以避免这种复制
  • NVD3.js:ReferenceError:nv 未定义

    我正在使用 NVD3 js 库来生成图形 我尝试向其中添加折线图并收到上述错误 如何解决呢 我正在尝试这个here 实际上我发现问题出在文件夹结构上 Angular nvd3 网站附带的示例给出了路径 Bower components nv
  • Bootstrap 3 - 连续使用超过 12 列

    我遇到了一种情况 要求我不要限制一行中的列数 因为可能会将多个内容块从管理中的位置添加到该区域 默认情况下 BS3 的行为告诉 12 列 div 不要浮动 这会导致它们越过较小的浮动 div 的顶部 因此 我为我的系统编写了一个覆盖作为一个
  • 为什么我不能覆盖 `Array` 的原型 (`Array.prototype`)?

    我设定的原型是Array作为一个例子my 我认为book aa将显示 aa 但它显示 undefined 为什么 谢谢 h2 Array Properties h2
  • Keycloak:无法在 Spring Boot 应用程序中加载 URL

    我目前正在尝试开发一个使用 keycloak 保护的 Spring Boot Rest Api 当我尝试调用必须识别用户的 api 时 出现错误 错误信息如下 2020 04 10 16 09 00 324 WARN 44525 nio 8
  • XmlSerializer 可以反序列化为 Nullable 吗?

    这是重复的XmlSerializer 可以反序列化为 Nullable 吗 但我需要一个既不更改 xml 文档也不强迫我实现 IXmlSerialized 接口的解决方案 我不想实现 IXmlSerialized 因为旁边还有许多其他元素
  • jquery insertafter和insertbefore添加滑动动画

    如何为上下排序运动添加动画移动效果 您可以通过单击 向上 和 向下 文本链接来检查运动情况 这是我的代码 document ready function move up click function if this prev this pa
  • 当输入字段为空时显示 ng-repeat 列表时,AngularJS 过滤器比较器为 true

    我将通过这个示例小提琴来演示如何使用比较器参数来过滤精确匹配 http jsfiddle net api post library pure 优先级是 1 100 之间的数字 但我将其作为文本输入并作为字符串过滤 因此 任何包含子字符串的数
  • std::map::begin() 之前的 STL 迭代器

    在 C 11 中std map 是否有一些有效的迭代器x这样 x保证等于map begin 我想检测我刚刚调用的函数 我的 是否已将迭代器从函数的前面移走 该函数会将迭代器向后移动一位 这个答案适用于图书馆的其他部分吗 不 迭代器位于开头之
  • 仅在本地编辑跨域 Iframe 内容

    正如我们许多人所知 由于以下原因 无法编辑跨域 IFrame 同源政策 如果我们仅在本地使用时尚扩展等 有没有办法解决这个问题 以在 iframe 内启动的视频为例 我需要简单地添加 zoom 2 到 video21588864 ifram
  • 防止 matplotlib 有状态

    如果我创建一个Axes对象在matplotlib并改变它 即通过绘制一些数据 然后我调用一个函数没有通过我的Axes反对该函数那么这个函数仍然可以改变我的Axes 例如 import matplotlib pyplot as plt imp
  • newKieSession 是线程安全的吗?

    我们在项目中使用了 Drools kieSessions 许多线程可以创建新的 kieSession 有时线程在创建会话时可能会挂起 因此问题是 Firstly kieContainer newKieSession 是线程安全的操作吗 被绞
  • 核心数据子上下文不预取关系

    我激活了 Core Data 调试器 com apple CoreData SQLDebug 1在我的应用程序方案中 对于名为 Category 的实体和名为 Image 的关系实体 得到以下结果 主上下文上的 FetchRequest N
  • Protractor 和 Karma 可以一起使用吗?

    If 量角器正在取代 Angular Scenario Runner 进行 E2E 测试 这是否意味着我仍然可以使用它Karma作为我的E2E测试框架 当前 Protractor 维护者不推荐 https github com angula
  • findViewById 不适用于包含?

    我有一个像这样的包含
  • Android:带按钮的 ListView -> OnItemClick 不执行任何操作

    我的问题来自ListView 如果没有按钮 setOnItemClickListenerListView 的效果很好 开始活动 当我将按钮添加到 ListView 的项目中时 按钮是可单击的 但项目并不更可单击 我尝试使用myListVie
  • 减号运算符在 mysql 中给我错误

    我有两个疑问 第一个查询返回 11 行 第二个查询返回 6 行 当我对它们使用减号运算符时 据我所知 它应该返回 5 行 SELECT location from uploads where username Gates MINUS SEL
  • 颤振 - 列中的均匀空间未按预期工作

    问题截图我试图通过使元素之间的间距均匀来将元素放入红色框中 就像给每个人赋予权重 1 一样 为此 我将 mainAxisAlignment MainAxisAlignment spaceEvenly 放在父列中 但它不起作用 Contain
  • MySQL 中使用 InnoDB 进行全文搜索

    我有一个 MySQL 数据库 版本 5 5 28 其中有一个如下表 products InnoDB search id title description 1 Levi Blue Jeans Some cool jeans 2 Gucci