问题标签 [against]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
155 浏览

php - MySQL match() against() 用于比较的多个关键字

MySQL match() against() 用于比较的多个关键字

这是我的查询:


我的数据库看起来像这样:

我真正需要的是将标题与最相关的标题进行比较,并用 ids 更新列“relevant_ids”

结果应该是这样的:

  • 这意味着 title1 与 title6 , title2 和 title3 相关
  • 我的表包含超过 100K 行是制作前 50 名相关标题的最快方法吗?

谢谢

0 投票
1 回答
1155 浏览

php - MySql SELECT 查询跨多个字段的多个关键字

我需要一些关于SELECT查询逻辑的帮助,希望有人能给我一个比我更好的主意。

我有一张这样的桌子:

用户将被允许通过输入一个或多个关键字在此表上进行搜索。

我现在拥有的查询MATCH对每个字段的所有输入关键字执行一个查询AGAINST,并且我得到与任何关键字匹配的行。因此,如果输入是“圆肉”,则结果将是第 1、3 和 4 行:

但是,我只需要返回包含所有关键字的行。关键字可能包含在三列中的任何一列中。

因此,如果用户输入“圆肉”,则只返回第 4 行。

我目前的想法很简单,可能不是很好(我预计多个关键字会出现一些性能问题):

有更好的方法吗?

0 投票
1 回答
40 浏览

php - Mysql全文搜索与匹配和反对

这可能是一个非常愚蠢的问题。但是我是 mysql 新手,没有太多经验。

我想创建一个全文搜索,在多个列中搜索一个字符串。我在互联网上找到了 Match and Against 的方法并进行了尝试。

这就是我留下的:

使用此代码,我收到一个错误,称为:

据我所知,如果查询中有错误信息,则会出现此错误。但是我不知道错误的信息是什么。所有列都存在。我做错了什么?

感谢您的阅读!希望你能帮我解决这个问题。

0 投票
2 回答
2533 浏览

mysql - MySQL查询过滤包含搜索字符串中任何单词的记录

我必须开发一个简单的搜索页面,将搜索字符串与 MySQL 表中的字段匹配。

假设数据库表是“记录”并且考虑的字段是“记录标题”。还说以下是行中的“record_titles”。

字1
字2字1 字3 字4
字5 字2 字1字
6

现在在搜索表单中,假设用户提交搜索词,例如“word1 word7”、“word1”、“word1 word5”、“word1 word2”等,它应该返回在搜索词中至少包含一个词的记录标题。它不应将搜索字符串作为子字符串,例如,如果搜索词是“单词”,则不应返回上述记录集中的任何记录。

我尝试了以下操作,但有时与单个单词不匹配。

如何使用它(或另一种解决方案)来选择包含至少一个单词匹配的记录。

谢谢你。

吉尔

0 投票
0 回答
74 浏览

php - 根据值 preg_match 向内爆函数插入不同的“胶水”

我正在布尔模式下使用 MATCH 和 AGAINST 执行搜索查询,并且我将关键字存储在 ARRAY 中以显示它们像 TAGS,当我 IMPLODE 数组值以构造查询语句时它工作正常,但我想保留 BOLEAN 功能搜索,如“完全匹配”或其他特殊字符。

当数组值带有空格时是否可以插入引号?

然后我需要使用 implode 转换为 SQL 语句:

我尝试使用 ARRAY_FILTER() 但它只区分一个而不是另一个:

我的目标是在值带有两个以上单词时区分数组值,该函数为值添加引号

非常感谢你的帮助

0 投票
1 回答
538 浏览

mysql - sql Match() 针对无法识别

当我尝试这个查询时

phpmyadmin 给我一个警告,指出:

它仍然显示正确的结果。当我尝试另一个查询时:

它只会给我和错误而没有得到结果。我做错了什么吗?

编辑:我更新了 phpmyadmin 但我得到的是新的错误消息

0 投票
1 回答
1516 浏览

mysql - Mysql匹配对排名

我目前正在使用类似的自动完成框查询。但是我想使用匹配,它应该更快,但我遇到了一些排序问题。

我想对这样的查询进行排名:

  1. [询问] %
  2. [询问]%
  3. % [询问]%
  4. %[询问]%

现在我使用

当我使用...

...所有结果都获得相同的“排名分数”。

例如,搜索Natio 返回Pilanesberg National ParkNational Park Kruger具有相同的分数,而我希望第二个结果作为第一个结果,因为它以查询开头。

我怎样才能做到这一点?

0 投票
1 回答
70 浏览

mysql - MySQL 中的 MATCH AGAINST 不起作用

MySql 中的全文搜索有问题。我创建查询:

其结果:

如果有搜索,为什么数字3有分数?lowertwo words

0 投票
1 回答
29 浏览

mysql - 订购 mysqls MATCH() AGAINST() 相关性,顶部有完整的数学

我今天在使用 mysqls MATCH()...AGAINST() 时遇到了问题。

因为我想解决我的问题可能更容易,所以我创建了一个小的SQLFiddle

我完全理解,为什么“Foo Bar Foo”在这个 Select 语句的工作方式上比“Foo Bar”更相关。但我想要的是“完全匹配”术语的相关性高于“完全匹配和更多”术语。

如果不使用“联合”来组合两个语句,这个结果是否可能?

答案(感谢 Gordon Linoff):

0 投票
1 回答
665 浏览

mysql - 在 mysql 中将 concat 与 where 匹配进行分组

我正在使用 SQL 开发一个简单的搜索功能并且卡住了。我使用 GROUP_CONCAT 将所有关键字放在一行中。关键字取自类别。

并非所有列都在此示例中。我已经把它剥离了

keywords包含类似keyword1 keyword2 keyword3.

上面的 SQL 正在运行。但是,我不能将 MATCH AGAINST 与虚拟值一起使用keywords

我已经阅读了我认为是一个丑陋的解决方法,添加以下内容:

LIKE 可能很慢,因为 HAVING 在 GROUP BY 之后我不能使用 OR 所以在这种情况下 HAVING 将覆盖 WHERE。

理想情况下,我也想使用 MATCH AGAINST keywords。那么,我有哪些选择?

  • 某种虚拟表?
  • 子查询?
  • 还有什么?

我可能需要一个示例代码来理解。