问题标签 [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 投票
3 回答
11664 浏览

sql-server - SQL Server:普通索引与全文索引

全文索引和 varchar 列上的常规索引之间到底有什么区别(以及优点/缺点)?我什么时候使用哪个索引?

我有大量的 varchar 列(地址 - 城市名称、街道名称等),我需要以最高效的方式进行搜索,并且我正在尝试找出要使用的索引类型以及原因。

谢谢!

0 投票
1 回答
266 浏览

django - Django、Xapian 和 Haystack 的 DataBaseLock 错误

我正在用 xapian/haystack 索引一个模型。当我在本地机器上测试它时,一切正常,但是当我尝试在服务器上保存模型时,Xapian 抛出 DatabaseLockError

我在官方 django haystack 网站上阅读了一些关于排队的信息。这是要走的路吗,如果是,我该如何实施?

0 投票
1 回答
3812 浏览

sql - 如何在 SQL Server 2008 中将 CONTAINS 与内联查询一起使用?

我有这个 sql 查询,我试图使用 CONTAINS 来搜索标题字段。

但我得到这个错误。

“不能在列 'Title' 上使用 CONTAINS 或 FREETEXT 谓词,因为它不是全文索引。”

Titles 表已编入索引,并且 CONTAINS 可以通过简单的搜索正常工作。

有谁知道我做错了什么?内联查询不支持 CONTAIN 查询吗?

此查询正在 SQL Server 2008 中运行。

0 投票
6 回答
58165 浏览

sql-server - 我如何知道 SQL 全文索引填充何时完成?

我们正在为针对测试 SQL Server 数据库运行的 ASP.NET 应用程序编写单元测试。即 ClassInitialize 方法用测试数据创建一个新的数据库,ClassCleanup 删除该数据库。我们通过从代码运行 .bat 脚本来做到这一点。

被测类被赋予连接到单元测试数据库而不是生产数据库的连接字符串。

我们的问题是,数据库包含一个全文索引,它需要用测试数据完全填充,以便我们的测试按预期运行。

据我所知,全文索引总是在后台填充。我希望能够:

  1. 使用同步(transact-SQL?)语句创建完全填充的全文索引,或者
  2. 找出全文填充何时完成,是否有回调选项,或者我可以重复询问吗?

我目前的解决方案是在类初始化方法结束时强制延迟 - 5 秒似乎有效 - 因为我在文档中找不到任何内容。

0 投票
1 回答
982 浏览

sql-server - SQL Server:一个用于全文索引的大型持久计算列

在我看来,这是最简单、最直接的解决方案,但如果我错了,请纠正我。

与其在表的所有单个列上都使用全文索引,不如只生成一个宽计算列并仅针对该列运行全文索引不是更好吗?

在我看来,它摆脱了拥有多个列的所有问题,包括。我无法搜索“x AND y”,因为这与第 1 列中存在“x”和第 2 列中存在“y”的行不匹配。

有什么反对意见吗?

0 投票
1 回答
720 浏览

sql-server - 通过非索引列的文本复制加速 SQL Server 全文索引

1) 我有文本字段 FirstName、LastName 和 City。它们是全文索引的。

2) 我还有 FK int 字段 AuthorId 和 EditorId,没有全文索引。

搜索 FirstName = 'abc' AND AuthorId = 1 将首先在整个全文索引中搜索 'abc',然后缩小结果集的 AuthorId = 1。

这很糟糕,因为这是对资源的巨大浪费,因为全文搜索将在许多不适用的记录上执行。

不幸的是,据我所知,由于 FTS 进程与 SQL Server 是分开的,因此无法扭转这种情况(首先由 AuthorId 缩小,然后对匹配的子集进行全文搜索)。

现在我提出的解决方案寻求反馈:创建另一个计算列是否有意义,该列将包含在全文搜索中,将作者标识为文本(例如 AUTHORONE)。这样我就可以摆脱 AuthorId 限制,而是将其作为全文搜索的一部分(搜索“abc”将是“abc”和“AUTHORONE”——所有这些都作为全文搜索的一部分执行)。

这是个好主意吗?为什么?

0 投票
1 回答
265 浏览

sql-server - SQL Server 全文索引如何增长?

我试图了解全文索引的增长并衡量其长期记忆需求。

它是否保留每次搜索的缓存?(知道第一次搜索新关键字总是需要稍长一点的时间,随后会更快)它会无限增长吗?

或者它的大小在创建后几乎是有限的?

随着时间的推移,我应该期待性能下降、停滞或改进吗?

0 投票
1 回答
92 浏览

sql-server - 带有全文创建的 SQL Server 2008 错误

我有 SQL Server 2008(版本 10.0.2531)。

以下烦人的错误?发生了,也许有人有一个解决方法:当我创建一个计算列,它还结合了来自标量值函数的值,然后通过向导将其添加到全文索引中,一切正常。全文索引在列上正确提取,我可以按预期搜索和返回结果。

如果我现在尝试更改表上的任何内容或任何 FK 连接的表 - 例如,添加另一个字段 - 它不会接受更改并从保存对话框中取消,说我的计算列不能被全文索引。

知道这里发生了什么吗?

0 投票
0 回答
848 浏览

sql-server-2005 - SQL Server 2005 更改全文目录未填充索引

您好我正在重建一个全文目录,如下所示:

它没有填充我的索引。当我使用FULLTEXTCATALOGPROPERTY来检查属性时,我得到的填充状态始终为 0,itemcount 为 0。

如果我直接填充索引(这是上面目录的一部分),如下所示:

这工作正常,但我无法通过目录重建来做到这一点。

任何建议,将不胜感激。

0 投票
2 回答
2605 浏览

sql-server - 我可以定义在构建 mssql 全文索引时使用哪些分词器吗?

我创建了一个全文目录,用于存储表中某些列的数据,但内容似乎已被我不想被视为单词分隔符的字符分开。(“/“, “-“, “_“ ETC..)

我知道我可以为分词器设置语言,并且http://msdn.microsoft.com/en-us/library/ms345188.aspx提供了有关如何安装新语言的一些想法 - 但我需要比这更直接的控制,因为所有这些语言仍然会中断我不想中断的字符。

有没有办法定义我自己的语言来查找断词器?