问题标签 [fulltext-index]

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 投票
1 回答
158 浏览

mysql - 慢速连接,索引未在 varchar 列上使用

我有两张桌子,它们之间的连接需要永远。创建了相关索引,但显然它没有被使用是我的猜测。

表格1:

表 2:

表 2 有TRADING_SYMBOLAS_ON_DATE作为 PK。对于一个日期,此表中可能有多个交易品种。

在表 1 中,对于相同的交易品种和日期组合,我们将有多行表示该品种在同一日期的不同分钟内的各种价格。

现在,我想加入这些表以了解两个表中的交易代码和日期组合匹配的行数。

解释表明它正在使用:

奇怪的是,我没有看到它使用与 TradingSymbol 相关的两个表中的任何指数。这可能会导致延迟。

这种理解是否正确,如果正确,如何纠正以使其使用与交易品种有关的指数。我是否需要交易品种的全文索引才能使用它。

编辑

以下是一些额外的说明:

INTRADAY_PRICES_CASH包含 69700675 行。ACTIVE_INSTRUMENTS_CASH包含 190177 行。

SELECT COUNT(*) FROM INTRADAY_PRICES_CASH C WHERE C.SnapshotDate>'2017-08-14' 返回 3911679 行

我的托管服务提供商没有提供对 innodb_index_stats 的访问权限。因此无法触发此查询: SELECT *, stat_value * @@innodb_page_size FROM mysql.innodb_index_stats WHERE table_name = 'INTRADAY_PRICES_CASH' and stat_name = 'size' and indexname = 'IDX_SNAPSHOTDATETRADINGSYMBOL';

select @@innodb_buffer_pool_size为 133.2 G

我有 16GB 内存。

0 投票
2 回答
330 浏览

sql - 全文搜索 SQL 在 nvarchar 字段中找不到数字值

我有一个存储过程,它对我的​​ nvarchar 字段使用全文搜索。当我意识到,如果我只输入该字段的数值,全文搜索将无法找到该字段。

例如,我的表中有字段名称,值为“Request_121”

如果我输入Запрос_120Request- 没关系

如果我输入120- 什么都找不到

到底是怎么回事?

截图:

  1. 未找到结果:https ://gyazo.com/9e9e061ce68432c368db7e9162909771

  2. 结果发现:https ://gyazo.com/e4cb9a06da5bf8b9f4d702c55e7f181e

0 投票
1 回答
149 浏览

mysql - MySQL全文搜索错误仅在某些查询上

当我在我的 MySQL 5.6 MyISAM 表中使用全文搜索时,有时会出现错误,但大多数情况下它工作正常。

此查询工作正常

但是这个不

它们基本相同,只有第二个也要求“蓝色”。表中有超过 100,000 行。如果在网站上运行,它会在 phpMyAdmin 中为我提供“#2014 - 命令不同步;您现在无法运行此命令”和“来自存储引擎的错误 -1”。

有任何想法吗?

0 投票
0 回答
934 浏览

sql - SQL全文搜索 - 字段中单词的位置

我在 SQL Server 框中有一个关键字表,当前存储有全文索引。我被要求在我们的搜索中添加一个工具,在结果更接近列开头的地方优先考虑结果。

在为此设置通用全文搜索后,我可以使用以下任一方法生成结果列表:

查询返回预期结果Contains,但没有优先级。该ContainsTable查询确实返回一个排名,但为每个排名分配了相同的值。

我知道排名考虑了出现(单词在文档中的偏移量),但我不知道如何访问该数据。这可能是我的 RTFM 错误,但我看不出如何影响排名以帮助满足客户的要求。

我一直在查看https://technet.microsoft.com/en-us/library/ms142524(v=sql.105).aspx但我仍然有点摸不着头脑。

我目前正在开发多个版本的 SQL Server(2008 R2 到 2016),但看起来我们将来会全部更新到 2016。

感激地收到任何帮助。

非常感谢。

可能的解决方案:

FTS 可以选择按单词的接近程度进行排名。通过在字段的开头添加一个控制词,我可以计算与该词的距离来给我一个排名。

这确实可以满足我的要求,但不会将其标记为答案,以防有人有更好的东西。似乎不是最优雅的解决方案,它增加了全文索引的大小。

0 投票
1 回答
28 浏览

mysql - 全文 InnoDB 搜索没有响应

我在我的 innoDB 数据库中使用全文搜索时遇到了一个大问题。
首先,ns_pages 表有超过 2.6m 的记录,全文索引和 3 个 keyblock。
该数据库在具有 128GB 内存的戴尔 R710 上运行。
当我使用此查询时,数据库停止工作。
如果我使用 webmin 检查查询,我会看到查询在超时之前仍然有效。

查询很简单,但我不知道为什么它不起作用。

但简单的一个很好用

执行计划

0 投票
1 回答
458 浏览

msdeploy - 使用 msdeploy 部署包含全文索引的 dacpac

如何使用 msdeploy 将包含 FULLTEXT INDEX(从数据库项目构建)的 dacpac 部署到 SQL Server?MSdeploy 跳过全文索引的创建,并在创建依赖于(现在缺少的)全文索引的对象时失败。是否有隐藏选项来排除/包含全文索引的创建?

0 投票
1 回答
89 浏览

mysql - MySql - 错误代码:1215。如果添加全文索引,则无法添加外键约束

我有一个数据库,我使用--no-data. 我正在尝试将该数据库结构导入一个空数据库中。

在我尝试执行的查询之后,我忽略了其他查询,

上面的代码失败Error Code: 1215. Cannot add foreign key constraint

它应该在 foreign_key_checks 设置为 0 时工作。

下面是导入USER表的sql。但是,此 sql 稍后将执行。

如果我先执行USER脚本然后ACTIVITY,它可以工作,否则它不会。

--this我为表格标记的行ACTIVITY导致了问题。如果我删除这两行,代码就可以正常工作。

为什么全文索引会创建外键问题?

0 投票
0 回答
44 浏览

mysql - 同一个 mysql 数据库在 2 个不同的服务器上给出不同的全文索引搜索结果

我在 mysql 5.7.20 的 2 个实例上运行相同的数据库(一个在 ubuntu 上,一个在 macosx 上)。osx 版本在 InnoDB 全文搜索中给出了合理的结果(例如,搜索“事实和数据”在顶部给出 3 个结果,相关性得分为 11.5、6.5、6.5 和标题中的“事实和数据”)。

在 Linux 系统上,在同一数据库中搜索“事实和数据”会给出完全不同的结果,相关分数从 44 开始 - 并且结果非常奇怪。在顶部的 macosx 上找到的那些出现在位置 20+。即使是数据库的新转储也是如此。

mysql 配置类似(innodb_ft_token_size 等),只是路径等不同。有没有人对这种行为有任何解释?

0 投票
1 回答
56 浏览

phpmyadmin - 使用全文搜索多列

我的代码似乎有问题,无法追踪问题。我想在我的数据库中搜索多个列,但我收到了错误报告。

我像这样改变了桌子

并且还将默认引擎更改为 MyISAM

但是当我通过搜索我的搜索框运行这个查询时,我得到了一个错误。

其他条件如下......

如果我的搜索词在任何行中,这应该会给我结果。但它返回一个错误的查询错误。还尝试在'$search'之后添加一个IN BOOLEAN ...即

当表行中有明显匹配的术语时,它不会给出任何结果。

这是我的搜索变量

对此的任何帮助将不胜感激。

0 投票
0 回答
63 浏览

mongodb - MongoDB:文本索引如何存储在元数据中?

我很好奇 MongoDB 如何在元数据中存储文本索引。我认为它以某种方式是一系列停用词过滤和词干的词,但我找不到任何官方提示。

为了更清楚:

我想知道它们是如何存储在元数据中的。例如,文本索引对于文档的外观如何

其中字段内容有一个文本索引。我的猜测是,它应该是这样的:

但我没有找到官方声明