在MySQL中获得更准确结果的最佳方法

问题描述 投票:0回答:1

我在开发环境中面临困境。这是一个三表结构:

  1. 表格内容(文章,新闻...)
  2. 表格标签(每个文章和新闻记录的标签)
  3. [跳过表单词(诸如“ for”,“ get”,“ to” ...之类的单词]

主要思想是根据文本搜索获取内容记录,怎么办?

First,根据Skip Words表从文本搜索中删除单词,然后将其余单词与标签表进行匹配。但是,我想给出一个“更智能”的结果,例如

[second步骤,我想首先获得与文本搜索中所有剩余词匹配的文章。该记录将是主要记录。

Third步骤,如果在文本搜索的所有单词中都没有匹配的记录,则开始查找与更少的单词匹配的记录并保留它们的数量,依此类推,直到获得内容列表记录。

last步骤显示了根据单词匹配量排序的记录。因此,考虑到这个过程,我认为可以使用:

  1. 临时表以从上述所有步骤加载数据
  2. 使用一个具有所有所需逻辑的单个存储过程

以上比较标签,使用“类似”条件and field like "word1%" and field like "word2%"

但是,我担心的是表演。这将是主页网站中的一个过程,该网站每小时的访问量超过1700次。非常感谢您可以说明您对这种过程的经验(如果有的话)?或您认为哪种方式是考虑性能的最佳实施方式?

mysql performance search procedure temporary
1个回答
0
投票

使用FULLTEXT索引。它涵盖了您要重新发明的一些想法。 1700 / hr没问题。

WHERE MATCH(col) AGAINST('join*' IN BOOLEAN MODE)

匹配联接/联接/联接和联接。

© www.soinside.com 2019 - 2024. All rights reserved.