我对在我正在构建的新数据库(我正在使用 MySql)中构建高效、健壮的产品索引结构的建议感兴趣
当通过表单输入产品时,我有兴趣对三个部分进行索引以进行搜索。
- 产品标题
- 产品描述
- 标签
最重要的是标题,其次是标签,最后是描述。
我正在考虑使用以下结构
CREATE TABLE `searchindex` (
`id` INT NOT NULL ,
`word` VARCHAR( 255 ) NOT NULL ,
`weighting` INT NOT NULL ,
`product_id` INT NOT NULL ,
PRIMARY KEY ( `id` )
)
然后,每次创建产品时,我都会将标题、描述和标签分开(删除常用词)并给予它们一个权重。
然后选择单词和相应的产品并通过权重排序就很简单了。
有更好的方法吗?我担心这个策略会随着时间的推移和数据库的填满而减慢速度。
最佳答案
对于标题,您可能只索引前几个字符,以便在匹配时获得较小的子集,但对于描述,您应该真正考虑 fulltext指数。这可以自动加权并找到最佳匹配
关于mysql - 在关系数据库中构建搜索索引的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059863/