问题标签 [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.
mysql - 慢速连接,索引未在 varchar 列上使用
我有两张桌子,它们之间的连接需要永远。创建了相关索引,但显然它没有被使用是我的猜测。
表格1:
表 2:
表 2 有TRADING_SYMBOL
和AS_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 内存。
sql - 全文搜索 SQL 在 nvarchar 字段中找不到数字值
我有一个存储过程,它对我的 nvarchar 字段使用全文搜索。当我意识到,如果我只输入该字段的数值,全文搜索将无法找到该字段。
例如,我的表中有字段名称,值为“Request_121”
如果我输入Запрос_120
或Request
- 没关系
如果我输入120
- 什么都找不到
到底是怎么回事?
截图:
mysql - MySQL全文搜索错误仅在某些查询上
当我在我的 MySQL 5.6 MyISAM 表中使用全文搜索时,有时会出现错误,但大多数情况下它工作正常。
此查询工作正常
但是这个不
它们基本相同,只有第二个也要求“蓝色”。表中有超过 100,000 行。如果在网站上运行,它会在 phpMyAdmin 中为我提供“#2014 - 命令不同步;您现在无法运行此命令”和“来自存储引擎的错误 -1”。
有任何想法吗?
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 可以选择按单词的接近程度进行排名。通过在字段的开头添加一个控制词,我可以计算与该词的距离来给我一个排名。
这确实可以满足我的要求,但不会将其标记为答案,以防有人有更好的东西。似乎不是最优雅的解决方案,它增加了全文索引的大小。
mysql - 全文 InnoDB 搜索没有响应
我在我的 innoDB 数据库中使用全文搜索时遇到了一个大问题。
首先,ns_pages 表有超过 2.6m 的记录,全文索引和 3 个 keyblock。
该数据库在具有 128GB 内存的戴尔 R710 上运行。
当我使用此查询时,数据库停止工作。
如果我使用 webmin 检查查询,我会看到查询在超时之前仍然有效。
查询很简单,但我不知道为什么它不起作用。
但简单的一个很好用
msdeploy - 使用 msdeploy 部署包含全文索引的 dacpac
如何使用 msdeploy 将包含 FULLTEXT INDEX(从数据库项目构建)的 dacpac 部署到 SQL Server?MSdeploy 跳过全文索引的创建,并在创建依赖于(现在缺少的)全文索引的对象时失败。是否有隐藏选项来排除/包含全文索引的创建?
mysql - MySql - 错误代码:1215。如果添加全文索引,则无法添加外键约束
我有一个数据库,我使用--no-data
. 我正在尝试将该数据库结构导入一个空数据库中。
在我尝试执行的查询之后,我忽略了其他查询,
上面的代码失败说Error Code: 1215. Cannot add foreign key constraint
它应该在 foreign_key_checks 设置为 0 时工作。
下面是导入USER
表的sql。但是,此 sql 稍后将执行。
如果我先执行USER
脚本然后ACTIVITY
,它可以工作,否则它不会。
--this
我为表格标记的行ACTIVITY
导致了问题。如果我删除这两行,代码就可以正常工作。
为什么全文索引会创建外键问题?
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 等),只是路径等不同。有没有人对这种行为有任何解释?
phpmyadmin - 使用全文搜索多列
我的代码似乎有问题,无法追踪问题。我想在我的数据库中搜索多个列,但我收到了错误报告。
我像这样改变了桌子
并且还将默认引擎更改为 MyISAM
但是当我通过搜索我的搜索框运行这个查询时,我得到了一个错误。
其他条件如下......
如果我的搜索词在任何行中,这应该会给我结果。但它返回一个错误的查询错误。还尝试在'$search'之后添加一个IN BOOLEAN ...即
当表行中有明显匹配的术语时,它不会给出任何结果。
这是我的搜索变量
对此的任何帮助将不胜感激。
mongodb - MongoDB:文本索引如何存储在元数据中?
我很好奇 MongoDB 如何在元数据中存储文本索引。我认为它以某种方式是一系列停用词过滤和词干的词,但我找不到任何官方提示。
为了更清楚:
我想知道它们是如何存储在元数据中的。例如,文本索引对于文档的外观如何
其中字段内容有一个文本索引。我的猜测是,它应该是这样的:
但我没有找到官方声明