问题标签 [match-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 投票
2 回答
1666 浏览

mysql - 在与 mysql 匹配时使用变量的技巧

请先阅读我的问题,然后你会发现它不是其他问题的重复。

我正在使用 sphinx 搜索 98% 的搜索,但只需要对一个查询使用匹配。

正如我们从 mysql 文档中知道的那样, AGAINST 只接受字符串。The search string must be a literal string, not a variable or a column name.

但我找到了这个链接http://bugs.mysql.com/bug.php?id=66573,它说这是可能的。但我不确定如何在我的情况下使用它。

这是我的代码

MATCH() AGAINST()正在给出错误,因为它应该是。在这种情况下如何使用该链接的技巧。我不知道该@word:=链接的用途。

提前致谢。

0 投票
0 回答
549 浏览

mysql - mysql 查询中的多个 MATCH() AGAINST()

请注意,我在谷歌上找不到有关此特定问题的任何信息。

由于AGAINST()只能接受single string文字,我需要MATCH() AGAINST在查询中运行多个,像这样

但这query不起作用。我怎样才能使这个查询起作用?

您的帮助将不胜感激。

0 投票
1 回答
204 浏览

mysql - 使用 MATCH AGAINST 查询字符串返回的不仅仅是严格相等的字符串

我正在尝试选择MATCH AGAINST在 MySQL 中使用的产品。

标题的长度指定为单个数字加上m米的字母,即1m,2m5m

当我尝试5m network cable与下面的查询匹配时,它也会返回0.5m network cable1.5m network cable

如何MATCH在 2 个字符的字符串上获得准确的单词?

我的查询:

0 投票
0 回答
123 浏览

php - mysql 5.6 MATCH () AGAINST() 不起作用的原因

我正在尝试在 mysql 中使用全文搜索。基本上它有效。然而...

当我使用 Yii 和 codeception 运行测试时,几次关于匹配的测试开始失败。

在某些时候(通常是当我重新启动开发虚拟机(vagrant)时,但有时会在一段时间后)查询

不再返回任何结果

请注意,我再说一遍,因为当我对失败的数据库执行 mysqldump 并再次重新加载它时,查询工作正常并且测试很高兴成功。

有人对这里可能发生的事情有任何指示吗?

数据库中的内容通过固定装置加载。

Mysql 5.6.21
Yii 1.1.14
Codeception 2.0.10

0 投票
0 回答
25 浏览

php - 为什么匹配 mysql innodb 仅适用于一个参数

我对MATCH(...) AGAINST(...)MySQL 中的函数有疑问。

我看到了一些示例,MATCH(...) AGAINST(...)但是当我尝试它们时它们不起作用并显示错误:

我今天安装了最新版本的 XAMPP,它的详细信息是:

我有 4 列全文 : ( subject, content,...) 并且当我使用此查询时它可以工作:

但是当我使用多个参数时MATCH()它不起作用并显示错误#1191:

然而,我看到了许多带有两三个论点的MATCH()例子AGAINST()

请帮帮我。我该怎么办?

0 投票
3 回答
397 浏览

php - Mysql嵌套匹配不返回任何结果

我想选择匹配的子集

$mk 可能是“动作、惊悚片” $keywords 可能是“英雄、枪支、森林”

这似乎不起作用,或者我可能做错了什么..

两个查询都返回值。当我将匹配查询与 AND 运算符结合起来时,它也可以工作。

我试图实现的是根据关键字从电影中获取一组,然后从该子集中获取一组具有匹配类型的集合..如果可能的话,这将继续使用更多键..

或者有没有更好、更快、更模块化的解决方案?我很难理解加入我认为它们可能是一个更好的解决方案,但我不知道..

问候

0 投票
1 回答
1348 浏览

php - MYSQL 匹配关键字列表逗号分隔文本字段

我在 MYSQL 数据库中名为“关键字”的字段中有一个关键字列表 例如,记录中的关键字字段包含 3 个示例记录

关键字列表不是一个数组 - 只是 mysql 数据库中的一个文本字段,它有很多其他字段。

当我从“到目前为止”看到的内容运行 MYSQL SELECT 查询时,有两种方法:a)像 %% b)匹配

假设我想对“苹果”这个词进行查询

从表中选择 * where 关键字,如 '%apple%'

这会调出包含单词“apple”的记录,包括上面的记录,但它不一定会给我任何更高或更低的序列。我必须对结果后查询进行过滤。

假设我在查询中更详细,并选择了“红苹果”,它仍然会显示匹配项,但我不一定会得到 KEYWORD LIST 1 比 2 或 3 更相关。

有人建议改用 Match Against

这肯定是朝着正确的方向前进 - 但是它不会通过发现更相关的完全匹配来对结果进行排序。相关性将基于关键字列表中出现的“苹果”一词的重复次数(这是所有搜索引擎选择完全忽略关键字的古老原因) - 你知道我要去哪里吗?

我正在寻找的是在 MYSQL 中处理大部分逻辑,而不是像其他人建议的那样将其读入数组并在 PHP 中处理。因此,这个简单的例子。

这是查询应该是什么:

1)如果我的查询是“苹果”关键字列表 1 应该首先出现

2) 如果我的查询是“红苹果”,那么关键字列表 2 应该首先显示,因为“红苹果”这个词更靠近关键字列表的前面 - 更靠近字符串的开头。

但是因为 LIKE %%

即使匹配是“red appleberry”而不是“red apple”,也会显示关键字列表 3

(如果 MySQL 有某种 'explode' 函数,你可以指定逗号(',')作为匹配中的分隔符,那将是最简单的,但我不知道任何这样的方法,对吗?当然是你d 必须将整个结果列表读入一个数组,然后在 PHP 中分解它们。

3) 假设我搜索“red apple”,而这就是错误:我仍然会匹配“red appleberry”(记录 3)——我不希望这样。记录 2 应该出现,然后是记录 1,甚至不显示记录 3。

这是一个讨论和一个询问。有人有什么建议吗?

我自己的答案:在查询中包含逗号而不是搜索“red apple”搜索“red apple”,但是如果用户在两者之间放置一个空格 - 或者如果它位于关键字列表的末尾?

问题:我们如何在 MYSQL 的逗号分隔文本字段中搜索特定的 SCORE,该字段使用确切的单词(不是片段)来得出一个有序的结果列表。

尽管 red appleberry 和 red apple 是用逗号分隔的两个不同的短语,但到目前为止,每次尝试都会使关键字列表 3 显示高于 2。

谢谢!让我们讨论!

0 投票
0 回答
191 浏览

c# - 查找与 MySQL Match-Against 查询匹配的单词

在我的 C# 应用程序中,我正在对 MySQL 数据库进行搜索,以查找与用户定义的关键字匹配的项目。示例查询如下所示:

我想为每个结果确定匹配的单词。我想避免编写更多代码来搜索数据库返回的每个结果以确定匹配项。我正在考虑更改查询以使用 IN BOOLEAN MODE - 在这种情况下,执行搜索可能会变得更加困难。

有什么办法可以从 MySQL 中获取匹配的单词?

0 投票
1 回答
101 浏览

mysql - 使用 MySQL 匹配的高级查询

是否可以使用 Match / Against 匹配关键字,但如果它出现在特定短语中则不行?

例如,如果我想匹配“狗”而不是“热狗”:

“这是一条狗”应该匹配。

“这是热狗”不应该匹配。

“A hot dog is not a dog”应该匹配,因为第二个“dog”不是“hot dog”的一部分。

我的应用程序在大型数据库(约 10 万条记录)中搜索用户定义的数百个关键字,因此此查询的性能很重要。

编辑:我只想匹配整个单词,而不是作为另一个单词的一部分出现的关键字。

0 投票
1 回答
103 浏览

mysql - 使用 IN BOOLEAN MODE 时找不到 FULLTEXT 索引

我正在尝试使用MATCH ... AGAINST WHERE子句过滤一些数据。但我收到以下错误:

找不到与列列表匹配的 FULLTEXT 索引

这是我执行的查询:

如您所见,我是否使用IN BOOLEAN MODE内部来克服Dan GrossmanAGAINST所说的这个问题,但它不起作用。

我错过了什么还是我做错了什么?

附带说明一下,选择(以及 MATCH 部分)是在 PHP 中动态创建的