我想用 metaphone 进行全文搜索。一切工作正常。我有4个领域,即。
ID |Category | Type |Title |Meta
1 |Vehicle |4 Wheelers |Farrari Car for Sale |FHKL WLRS FRR KR FR SL
2 |Real Estate |Residential Apt|3BHK for sale |RL ESTT RSTN APT BK FR SL
3 |Music |Instruments |Piano for sale |MSK INST PN FR SL
4 |Stationary |College |Bag for $50 |STXN KLJ BK FR
5 |Services |Job |Vacancy for Jr.Web Developer |SRFS JB FKNS FR JRWB TFLP
以上是样本数据。在这里,我想使用 match()against() 来使用变音位和全文搜索。一切正常。然而,像 Bag、Job 和 Car 这样的词被忽略为默认的最小字符 4。现在的问题是我使用共享主机,而主机提供商告诉我他不能为我提供 mysql 配置文件,他们也不能这样做配置文件
ft_min_word_len = 2
中的 this 不是一个选项。
//Code for generating metaphone
<?php
$string = "Vacancy for Jr.Web Developer";
$a = explode(" ", $string);
foreach ($a as $value) {
echo metaphone($value,4)."<br>";
}
?>
我用的是正常的
SELECT * FROM tbl_sc WHERE MATCH(META) AGAINST('$USER_SEARCH');
数据库中的所有信息都是用户生成的,因此我无法监督。由于我使用 mysql、PHP 和共享主机。我不能使用任何弹性搜索库或类似 solr 的东西。我已经搜索了谷歌和堆栈溢出但是我无法得到任何东西
一种选择是使用 LIKE 运算符,但如果可能,我想使用 MATCH() AGAINST() 。
请帮助我解决一些问题或替代路线。