问题标签 [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.
php - MySql 匹配文本 + 连接变量
我试过这个'[#',h.id,']'
AND '[#'+h.id+']'
AND CONCAT('[#',h.id,']')
。它不工作
我想#+id
从表中选择,这是代码
谢谢。
mysql - MATCH AGAINST 不获取多列
我有一个非常简单的 FULLTEXT 搜索,其中包含准备好的语句。我的所有列都正确索引为 FULLTEXT。
如果我尝试 MATCH 一列,则搜索和获取工作正常,但是,当我一次使用 2 列时,我无法获取结果,尽管它们是预期的。1)我相信我的错误出现在我的代码的 fetch 部分,但我不明白为什么如果它与 1 列一起使用,这将是多列 MATCH 的问题。2) 我知道如果超过 50% 的表记录与搜索匹配,则全文搜索不会返回结果。那你怎么处理这样的案子呢?
注意:如果我单独匹配(名称)或匹配(描述),此代码将返回应有的内容。TY 的帮助。
mysql - MySQL全文搜索和评分
我的搜索相关性和使用全文过滤(匹配)有问题,我将在下面解释。
我有一个名为 Songs 的表,其中包含超过 150 万条记录,该表包含许多列,其中 2 列是名称和艺术家,这 2 列是全文索引。
当我搜索与值完全匹配的标题和歌曲时,它显示的分数很低,例如,对我来说这没有任何意义。
数据:
当我执行下面的查询时,它会带来:
我正在寻找完全匹配,怎么会是 54.7?
如果我删除 + 号
我将对许多根本不相关的其他记录做出类似的回应。
对我来说,带有“+”号的搜索应该接近 100,为什么它不是,我该如何改进它?
php - 如何使用 solr 等在 MySQL 中通过 match-against 获得与 %someword% 相同的效果
但我找不到我的答案,所以问了这个问题,抱歉重复了。
我在 MySQL 中执行查询
记录是:
- 我是约翰·多伊。
- 约翰·多伊是个男人。
- 约翰姓氏是母鹿
像%john d%将匹配前两个结果,因为它们的顺序相同,而 wilds 将匹配记录中的任何位置但是在大型数据集中,这已经杀死了性能
所以我用谷歌搜索并发现MATCH AGAINST IN BOOLEAN MODE 作为替代方案。现在,我的搜索词是:john d 它试过了
我只想得到相同顺序的结果。(例如 1. 我是 john doe。2. john doe 是男人)对于这个搜索词 john d 但我无法实现。 就像 %john d%给了我想要的,但它会扼杀性能。我怎样才能在 MySQL 中以快速的性能获得我想要的结果。
在可能重复:如何使用前缀通配符,如 '*abc' 与 match-against
@GolezTrol提供了一个解决方案来创建一个单独的列,他在其中反转字符串:
然后,我们可以查找 'john d%' 而不是查找'%john d',如果该列被索引,这会更快。
但
@PeerBr请注意,如果您想从字符串中间查找内容,则反转字符串对您没有帮助。通过使用普通索引键入“Blue%”或使用倒置 inices反转“Blue%” ,您不会找到“Jimmy Blue Jones” 。
谢谢
mysql - 匹配查询不起作用 - 参数不正确
我有一个带有文章的表格和一个带有类别的表格。每个类别都有许多关键字,我想使用这些关键字来确定一篇文章是否属于某个类别。
我正在使用以下查询:
出于某种原因,由于 MATCH 的参数不正确,此查询无法正常工作,但我无法弄清楚它是什么。
mysql - MySQL MATCH AGAINST:即使几个单词匹配,分数也一样?
我有一个像这样的查询
这个给定查询的结果是:
如您所见,id 为 14116 的行在 ap.name 中同时包含单词 blue 和tomatoe。即使两个单词匹配,分数也与一个单词匹配一样。所以我尝试了AGAINST('+style +mode' IN BOOLEAN MODE)
,AGAINST('+*style* +*mode*' IN BOOLEAN MODE)
但我无法得到想要的结果:匹配的单词越多,应该返回的分数越高。有任何想法吗?
mysql - Mysql - 在匹配中使用数字
我想使用 match against 子句转换这个 mysql 代码
在比赛中,这相当于什么?
php - MySQL MATCH AGAINST 不返回所有拟合结果
我有一张简化照片 ID和标签 ID的表格。而且我最近注意到,当我使用 MATCH AGAINST 命令时,它不会返回所有合适的匹配项。即使有时两行包含经过测试的完全相同的文本,但仍然有一个被选中,而另一个没有。
这是一张名为照片的表格
这是我正在使用的命令:
并且它在大多数表格中都可以正常工作,但由于某种原因,它无法正常工作,尤其是在最后一行。返回:
注意:如果我尝试将其更改tag
为不同的id
,它会起作用!但有些ids
根本行不通
我应该怎么办?
mysql - MySQL全文搜索不适用于左连接
我在一个表上使用全文搜索,然后将它与来自不同数据库的表连接起来。表 ( table1
) 具有在列上定义的全文索引name
。
当我尝试使用全文搜索时,以下查询不起作用:
但是在没有左连接的情况下使用它时,查询可以工作:
注意:我不能使用LIKE %searchString%
, 而不是match-against
性能问题。
有没有办法在同一个查询中使用全文搜索和左连接?
编辑:似乎问题与两个表不在同一个数据库中的事实有关。当尝试对来自同一个数据库的两个表进行相同的查询时,它可以工作。知道为什么会发生这种情况吗?
php - 在字符串中查找空格并在后面追加字符
我正在构建一个搜索查询,如果输入多个,我想单独搜索单词,目前我正在做:
但是,如果该术语有多个单词,我想$term
显示为'+multiple +word +term'
所以我需要检查字符串中的空格并在空格后附加+。我知道我可以用它strpos($string, " ")
来查找/A 空间,但它不会在它找到的第一个空间之后停止吗?preg_match 会更好吗?
我也认为substr_replace($term, '+', $pos, 0);
插入角色会起作用吗?但同样只能处理一个空间而不是多个