gpt4 book ai didi

php - 全文搜索返回许多结果

转载 作者:行者123 更新时间:2023-11-29 05:14:31 25 4
gpt4 key购买 nike

我需要在文本列中搜索特定单词在该列中的出现情况。

例如,列内容可能如下所示:

KIT: TYPE WELD NECK ORIFICE FLANGE, CONSISTING OF TWO FLANGES WITH JACK SCREWS BUT WITHOUT BOLTS AND GASKETS, RATING CLASS 600, RAISED FACE, BORE TO MATCH .312 IN WALL, MATERIAL FORGED 304 STAINLESS STEEL ASTM-A182 GRADE F304, SPECIFICATION: SP-50-13 REV: 1

现在用户需要在文本框中输入以下内容:

ASTM-A182 F304 WELD NECK

目前我使用这段代码:

$sql = "SELECT * FROM commtable WHERE MATCH (ldisc) AGAINST ('" . $ldisc . "' IN NATURAL LANGUAGE MODE);";

但大多数返回的记录(它返回数百条记录)不包含在文本字段中输入的所有搜索词。

如何微调此全文搜索(或使用其他方法)以获得更接近输入内容的更好结果?

编辑:表类型: enter image description here

编辑 2:它现在正在工作,添加了这段代码:

if ($ldisc != "") {

$parts = explode(" ", $ldisc);

$tempSQL = "SELECT * FROM commtable WHERE MATCH (ldisc) AGAINST (" . "'";

for ($i = 0; $i < count($parts); $i++) {
$tempSQL = $tempSQL . '+' . $parts[$i] . ' ';
}

$tempSQL = $tempSQL . "' IN BOOLEAN MODE);";

$sql = $tempSQL;
$result = mysqli_query($con, $sql);
}

并将最小字长改为1。

最佳答案

这个问题基本上就是您要找的问题:MySQL fulltext search - Only results that contain all words

NATURAL LANGUAGE MODE 本质上返回近似匹配。要匹配 BOOLEAN MODE 中的所有单词,您必须在每个需要的单词前面添加一个 +。例如,

MATCH (ldisc) AGAINST ('+ASTM-A182 +F304 +WELD +NECK' IN BOOLEAN MODE)

您必须拆分输入字符串并添加 + 符号。如何做到这一点留给程序员作为练习。 =)

关于php - 全文搜索返回许多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35014348/

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