问题标签 [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 回答
89 浏览

sql-server - 全文索引搜索有大量页面读取

我在包含如下数据的表中的列上有一个全文索引:

该列是 Zip、姓氏、名字、城市、州、电子邮件和电话号码的聚合。

我使用此列根据任何可能的信息搜索客户。

我担心的问题是在对该列进行查询时发生大量读取。我正在使用的查询是:

现在,当运行 Profiler 时,我可以看到该搜索有大约 50.000 次页面读取以返回单行,而不是使用使用常规索引和多个变量的不同方法时,分解为@firstName, @LastName,如下所示:

使用这种方法,我只能读取大约 140 页。我知道这些方法完全不同,但我试图理解为什么全文版本的阅读量如此之多,以及是否有任何方法可以将其降低到更接近使用常规索引时获得的数字。

0 投票
1 回答
694 浏览

mysql - MySQL FULLTEXT 找不到索引

我尝试运行以下查询

表抱怨有两个 FULLTEXT 索引。标题和描述,但我仍然从 MySQL 收到此错误

但是我可以自己运行每一行的查询

这工作正常。我错过了什么?

在此处输入图像描述

0 投票
2 回答
509 浏览

mysql - FULLTEXT 索引需要更长的时间来执行

以下查询需要 1.1s 执行,EXPLAIN显示了FULLTEXT索引的使用:

列上有FULLTEXT索引sIndex07。但是,当此FULLTEXT索引被删除并替换为常用KEY索引时,查询:

只需 0.6 秒即可完成。我在其他问题中看到该MATCH子句需要嵌套,但我不确定如何将它嵌套在COUNT语句中。此外,在删除meta_oid子句时,使用FULLTEXT索引运行的查询比第二个查询快 50%,所以虽然它似乎FULLTEXT是一个好处,但在将它与查询的其余部分结合使用时我正在苦苦挣扎。meta_oid已编入索引,数据库sIndex07大小varchar(1024)为 4.5Gb。

编辑:搜索速度较慢的 原因FULLTEXT是搜索词中有一个连字符,因此在我的特定情况下返回的数据集比运算符大得多LIKE。没有连字符的搜索确实使用FULLTEXT并执行大约一百倍于LIKE

我将在不到 24 小时内将赏金奖励给可以使用连字符进行搜索而无需重新编译 mysql 二进制文件的人,从而提高FULLTEXT速度,这是问题的最初目的。

0 投票
1 回答
347 浏览

full-text-search - Microsoft Azure SQL 数据库 v12 中与全文索引相关的错误 SQL71578 是什么?

当我尝试在 Visual Studio 中编译针对 Microsoft Azure SQL 数据库 v12 的数据库项目时,使用以下命令

,我收到此错误:

错误:SQL71578:{table} 上的元素全文索引的属性 IsPartOfStatisticalSemanticAnalysis 设置为 Microsoft Azure SQL 数据库 v12 不支持的值

解决方案是什么?

0 投票
0 回答
404 浏览

cjk - 如何在 mysql 5.7 中使用 ngram 解析器对中英文字符进行全文索引?

我有一个名为“comp”的表,其中有一列“compName”,compName 包含不同国家/地区的字符,我正在使用带有 ngram 解析器的 mysql5.7,现在可以搜索中文单词,但它给我带来了不好的结果当我搜索英文单词时。根据 INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE 表,我发现它是按字符分词的英文单词,例如:abc 将分词为 ab,bc,但据我们了解,英文将分词为“SPACE”,对吧?那么在mysql5.7中使用ngram parser时如何解决这种情况。

0 投票
0 回答
32 浏览

mysql - 全文列mysql在单词'clients'中找不到'client'

我有一个包含单词 clients 的 varchar 列。它是带有客户数据的全文。通过 word 客户端搜索时,我无法找到该行。由于记录数量,我希望避免 LIKE 。LIKE是唯一的出路吗?我读到 WITH QUERY EXPANSION 可能会有所帮助,但我正在使用的共享 mysql 服务器无法识别它。

有小费吗?

0 投票
1 回答
4668 浏览

mongodb - Mongo $文本查询:在其他人之前返回文档“以”字符串开头

假设我有一个 mongo 集合,其中text index包含itemName以下 3 个文档:

然后我执行如下查询:

我如何强制 mongo返回以“Car”开头的文档不区分大小写)itemName在返回字符串中某处也包含“Car”的任何其他文档

所以我想按以下顺序检索文档:

当然,这意味着在搜索功能中使用,因此向用户显示项目是完全有意义的在显示之后的任何其他项目之前向用户显示以他的搜索字符串开头的项目是完全有意义的。

直到现在我都在使用标准的正则表达式,但这里的性能当然要差得多!+ 因为我必须搜索不区分大小写,根据文档,正常的正则表达式根本不使用任何索引?!

编辑:

此外,有时 的行为$text非常奇怪。例如,我有大约 10-15 项itemName以“Zwiebel”开头的项目。这个查询

像魅力一样工作并返回所有这些文档,而这个查询

不返回任何东西!只需将$search.

我真的不明白这怎么可能?!

最好的,P

0 投票
1 回答
932 浏览

elasticsearch - ElasticSearch 中的名称搜索

我在 ElasticSearch 中创建了一个索引,其中存储了一个人的全名:姓名和姓氏。我想对该字段执行全文搜索,因此我使用分析器对其进行了索引。

我现在的问题是,如果我搜索:“John Rham Rham”

在我有“John Rham Rham Luck”的索引中,该值的得分高于“John Rham Rham”。与字符串中具有更多值的字段相比,是否有可能在确切字段上获得更好的分数?

提前致谢!

0 投票
1 回答
54 浏览

sql-server - 使用 OR 时优化 SQL CONTAINS

在 SQL Server 2014 中,我尝试使用contains几个不同的术语。该查询花费了非常长的时间,我很好奇分隔包含命令或在同一语句中使用它们是否更快。

例如,使用它是否更快:

或者

使用一个与另一个会有所不同,还是我可能在这里遗漏了一些更基本的东西?

更新

我最终运行了第一个,它在 50 分钟后出错(可能是单独的服务器连接问题)。我运行了第二个选项,查询在 19 分钟内完成。如果有人对为什么一个人的表现可能比另一个人有更好的答案,我仍然会感兴趣。谢谢。

0 投票
2 回答
70 浏览

c# - 在大文本c#/sql中查找每个相似词的频率

我需要将单词分组为相似,然后找到频率。

所以喜欢的文字"moron and morons sat on moronic bench with mormons"会产生结果

我需要能够在一个查询中推送文本或确切单词列表,并频繁接收通用单词。

从 C# 开始,可以使用 SQL Server。