通过全文搜索来搜索句子及其组合

时间:2017-09-22 20:26:46

标签: mysql sql full-text-search

我正在使用MyISAM引擎和全文搜索。我在表格中有一个text列 假设有一个这样的请求句子:

“我们有两辆蓝色汽车”

我在text列中有这些记录。

  • 我们有两辆蓝色汽车
  • 我们
  • 有无
  • 2
  • 蓝色
  • 汽车
  • 我们有
  • 两个蓝色
  • 我们有两个
  • 蓝色汽车

......以及与上述类似的任何组合。

我需要一个全文搜索查询,以给定顺序返回以下结果:

1 =>我们有两辆蓝色车 2 =>我们有两个蓝色 3 =>我们有两个 4 =>我们有 5 =>我们
5 =>有
5 => 2个
5 =>蓝色
5 =>汽车

5 之后的顺序并不重要,因此我多次重复 5 。我尝试了多个全文模式,但顺序基于id(主键)列

感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用下面的内容,这样可以获得所需的输出。

     Select column
     from table 
     WHERE `TEXT` LIKE '%We%' and
    `TEXT` LIKE '%have%' and
    `TEXT` LIKE '% two%' and
    'TEXT' LIKE '%blue%' and
    'TEXT' LIKE '%cars%';

答案 1 :(得分:0)

最后我用这个查询做了,但我不确定性能。

SELECT tbl.*,
MATCH(text)
AGAINST ('
("We have two blue cars") 
("We have two blue") 
("We have two") 
("We have") 
We have two blue cars'
IN BOOLEAN MODE) as score FROM tbl where 

MATCH(text)
 AGAINST ('
("We have two blue cars") 
("We have two blue") 
("We have two") 
("We have") 
We have two blue cars
' IN BOOLEAN MODE) 
ORDER BY score DESC ;`



它返回我的以下结果,大约需要0.0706秒,包含9240条记录。