gpt4 book ai didi

MySQL查询——基于权重的搜索引擎

转载 作者:行者123 更新时间:2023-11-29 14:45:07 24 4
gpt4 key购买 nike

以下是医疗 MIS 表的数据库结构:

CREATE TABLE IF NOT EXISTS `ab_med` (
`med_id` bigint(20) NOT NULL AUTO_INCREMENT,
`med_title` varchar(200) DEFAULT NULL,
`med_posted_date` varchar(200) DEFAULT NULL,
`med_company_name` varchar(200) DEFAULT NULL,
`med_experience` varchar(200) DEFAULT NULL,
`med_salary` varchar(200) DEFAULT NULL,
`med_city` varchar(200) DEFAULT NULL,
`med_description_short` text,
`med_details_link` varchar(500) DEFAULT NULL,
`med_from_city_type` int(1) NOT NULL DEFAULT '1',
`med_from_city` varchar(255) DEFAULT NULL,
`med_collected_time` datetime DEFAULT NULL,
`med_status` int(1) NOT NULL,
PRIMARY KEY (`med_id`),
KEY `MedCity` (`med_city`),
KEY `MedTitle` (`med_title`),
KEY `MedCompany` (`med_company_name`),
KEY `MedExperience` (`med_experience`),
KEY `med_details_link` (`med_details_link`),
FULLTEXT KEY `med_index` (`med_title`,`med_company_name`,`med_description_short`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=639295 ;

大约有 50 万条记录。用户可以使用 2 个字段进行搜索:

  1. 关键字
  2. 地点

根据分数查看关键字 med_titlemed_company_namemed_description_shortmed_city

位置已被调查到med_city

我使用了全文 mysql 搜索,但我需要最新的条目才能以更好的分数显示。我没有收到它的 SQL 查询。我正在使用以下 SQL 查询:

SELECT distinct(med_details_link),med_id,med_title,med_posted_date,med_company_name,med_description_short,med_from_city,med_experience,med_city,med_collected_time,MATCH (med_title,med_company_name,med_description_short) AGAINST ('+hello +world' IN BOOLEAN MODE) as score
FROM ab_med
WHERE MATCH (med_title,med_company_name,med_description_short) AGAINST ('+hello +world' IN BOOLEAN MODE) order by med_id desc limit 1000

假设我搜索“hello world”,我知道应该有基于以下的权重:

  1. 标题的权重最高
  2. 公司名称的权重小于标题但大于描述
  3. 描述的权重最小

请帮助获取 SQL 查询以考虑所有这些权重并高效搜索。

最佳答案

考虑转向 Sphinx 来获得此问题的满意解决方案。

对于 500 万行,以及您的要求,MySQL 全文搜索的性能将令人失望。

关于MySQL查询——基于权重的搜索引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com