coreseek单索引同时搜索多张mysql表字段

17-11-29 00:28 1693 3 1

一直用coreseek搜索一个表,但是既然叫全文搜索引擎,性能那么强劲,这么做有点太大材小用了。

首先先来看看我们要实现的功能。

我有两张表discussion话题表和comment话题回复表。

现在我搜索mysql这个关键词,我想同时搜索话题的标题内容以及话题的回复,这三个字段中含有mysql我都要查出来。

当然可以在coreseek配置文件中创建两个索引,一个索引discussion表,一个索引comment表。但是这么做很不灵活,分页基本上毁了,而且处理重复的数据也挺麻烦。

所以这个时候还是一个索引比较合适,我们可以在一个索引的sql_query中,使用联查,联查多张表,把一个话题下的所有回复串起来作为一个字段。

# 以前的sql  
# sql_query = SELECT id, title, content,keyword FROM discussion where id <= (select maxid from sph_ds_counter where counter_id = 1)  
# 联查的sql  
sql_query = SELECT ds.id,ds.title,ds.content,cm.cm_content FROM discussion as ds LEFT JOIN(SELECT id,discussion_id,GROUP_CONCAT(content) as cm_content FROM comment GROUP BY discussion_id) as cm ON ds.id = cm.discussion_id where ds.id <= (select maxid from sph_ds_counter where counter_id = 1)  

这样叫可以把符合条件的回复也查出来了,配置增量索引,性能消耗应该不是太大问题。

做自己喜欢做的事。
Up骚年
Up骚年 站长 @ 十七度 创建者 17 声望
all or nothing, now or never.
1 人点赞
dajiang
3 条评论
排序方式 时间 投票
dajiang
举报 #2

楼主的思路不错

Up骚年
举报 #3
@dajiang 😄
Up骚年
举报 #1

可通过本站的搜索功能体验效果

请登录后发表评论