问题标签 [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.
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:=
链接的用途。
提前致谢。
mysql - mysql 查询中的多个 MATCH() AGAINST()
请注意,我在谷歌上找不到有关此特定问题的任何信息。
由于AGAINST()
只能接受single string
文字,我需要MATCH() AGAINST
在查询中运行多个,像这样
但这query
不起作用。我怎样才能使这个查询起作用?
您的帮助将不胜感激。
mysql - 使用 MATCH AGAINST 查询字符串返回的不仅仅是严格相等的字符串
我正在尝试选择MATCH AGAINST
在 MySQL 中使用的产品。
标题的长度指定为单个数字加上m
米的字母,即1m
,2m
等5m
。
当我尝试5m network cable
与下面的查询匹配时,它也会返回0.5m network cable
等1.5m network cable
。
如何MATCH
在 2 个字符的字符串上获得准确的单词?
我的查询:
php - mysql 5.6 MATCH () AGAINST() 不起作用的原因
我正在尝试在 mysql 中使用全文搜索。基本上它有效。然而...
当我使用 Yii 和 codeception 运行测试时,几次关于匹配的测试开始失败。
在某些时候(通常是当我重新启动开发虚拟机(vagrant)时,但有时会在一段时间后)查询
不再返回任何结果
请注意,我再说一遍,因为当我对失败的数据库执行 mysqldump 并再次重新加载它时,查询工作正常并且测试很高兴成功。
有人对这里可能发生的事情有任何指示吗?
数据库中的内容通过固定装置加载。
Mysql 5.6.21
Yii 1.1.14
Codeception 2.0.10
php - 为什么匹配 mysql innodb 仅适用于一个参数
我对MATCH(...) AGAINST(...)
MySQL 中的函数有疑问。
我看到了一些示例,MATCH(...) AGAINST(...)
但是当我尝试它们时它们不起作用并显示错误:
我今天安装了最新版本的 XAMPP,它的详细信息是:
我有 4 列全文 : ( subject
, content
,...) 并且当我使用此查询时它可以工作:
但是当我使用多个参数时MATCH()
它不起作用并显示错误#1191:
然而,我看到了许多带有两三个论点的MATCH()
例子AGAINST()
。
请帮帮我。我该怎么办?
php - Mysql嵌套匹配不返回任何结果
我想选择匹配的子集
$mk 可能是“动作、惊悚片” $keywords 可能是“英雄、枪支、森林”
这似乎不起作用,或者我可能做错了什么..
两个查询都返回值。当我将匹配查询与 AND 运算符结合起来时,它也可以工作。
我试图实现的是根据关键字从电影中获取一组,然后从该子集中获取一组具有匹配类型的集合..如果可能的话,这将继续使用更多键..
或者有没有更好、更快、更模块化的解决方案?我很难理解加入我认为它们可能是一个更好的解决方案,但我不知道..
问候
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。
谢谢!让我们讨论!
c# - 查找与 MySQL Match-Against 查询匹配的单词
在我的 C# 应用程序中,我正在对 MySQL 数据库进行搜索,以查找与用户定义的关键字匹配的项目。示例查询如下所示:
我想为每个结果确定匹配的单词。我想避免编写更多代码来搜索数据库返回的每个结果以确定匹配项。我正在考虑更改查询以使用 IN BOOLEAN MODE - 在这种情况下,执行搜索可能会变得更加困难。
有什么办法可以从 MySQL 中获取匹配的单词?
mysql - 使用 MySQL 匹配的高级查询
是否可以使用 Match / Against 匹配关键字,但如果它出现在特定短语中则不行?
例如,如果我想匹配“狗”而不是“热狗”:
“这是一条狗”应该匹配。
“这是热狗”不应该匹配。
“A hot dog is not a dog”应该匹配,因为第二个“dog”不是“hot dog”的一部分。
我的应用程序在大型数据库(约 10 万条记录)中搜索用户定义的数百个关键字,因此此查询的性能很重要。
编辑:我只想匹配整个单词,而不是作为另一个单词的一部分出现的关键字。
mysql - 使用 IN BOOLEAN MODE 时找不到 FULLTEXT 索引
我正在尝试使用MATCH ... AGAINST
WHERE
子句过滤一些数据。但我收到以下错误:
找不到与列列表匹配的 FULLTEXT 索引
这是我执行的查询:
如您所见,我是否使用IN BOOLEAN MODE
内部来克服Dan GrossmanAGAINST
所说的这个问题,但它不起作用。
我错过了什么还是我做错了什么?
附带说明一下,选择(以及 MATCH 部分)是在 PHP 中动态创建的