我正在使用MyISAM引擎和全文搜索。我在表格中有一个text
列
假设有一个这样的请求句子:
“我们有两辆蓝色汽车”
我在text
列中有这些记录。
......以及与上述类似的任何组合。
我需要一个全文搜索查询,以给定顺序返回以下结果:
1 =>我们有两辆蓝色车
2 =>我们有两个蓝色
3 =>我们有两个
4 =>我们有
5 =>我们
5 =>有
5 => 2个
5 =>蓝色
5 =>汽车
5 之后的顺序并不重要,因此我多次重复 5 。我尝试了多个全文模式,但顺序基于id
(主键)列
感谢任何帮助。谢谢。
答案 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条记录。