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

sql - 视图或表上的全文索引?

我们将对视图进行全文索引。但是在尝试在视图上创建聚集索引时,它会显示类似“ Cannot create index. Object was created with the following SET options off: 'ANSI_NULLS'.”的错误

所以参考this SO post

避免这种情况的唯一选择是删除并重新创建表。

所以在这样做之前我问我是否可以为表本身做一个全文索引而不是在视图上创建一个索引。即从表中选择结果进行搜索,然后从视图中选择相应的数据。

与视图上的全文索引相比,在表上执行全文索引时是否存在任何与性能相关的问题。?请给出您的建议?

0 投票
2 回答
2409 浏览

sql - SQL 包含不适用于带有前面 * 的全文索引

工作并返回 6 行

abcdef

A B C D

A B C D

abcde

ABCDEFGH

ABCDEFG

返回未找到记录。

有谁知道我怎样才能让 '" * bc * "' 函数工作?

0 投票
5 回答
30399 浏览

mysql - 在 mysql 中为“ft_min_word_len”FULLTEXT 设置新值

我更改为"ft_min_word_len" = 4 位于my-innodb-heavy-4G.ini我的系统路径"C:\Program Files\MySQL\MySQL Server 5.1"中,但是当我运行时

我还是得到了结果value= 4。我没有在my.ini文件中找到这个变量。所以我也创造了我的逻辑。我复制到ft_min_word_len变量并放入my.ini文件中,现在我的结果显示value=3

但它不适用于三字符搜索。我已经重启了服务器。

我怎样才能实现也能够搜索三个字符值。

0 投票
3 回答
2596 浏览

mysql - Mysql、InnoDB 到 MyISAM 的全文索引

实际上,我想切换表的引擎。InnoDB 中有,因此我想将它们设置为 MyISAM

错误:文档 #1214 - 使用的表类型不支持 FULLTEXT 索引

所以......我这样做:

但我也有一个错误:

我理解这个错误......但我真的不想杀死我所有的引用索引,然后重新创建它们。太长。

有人有将 innoDB 转换为 MyISAM 的想法吗?我读到 MySQL 5.6.4 支持全文......不幸的是,我有 5.5.28 并且我在 Plesk 11 上。我担心如果我进行升级,我的服务器会崩溃。

有人可以帮助我吗?

0 投票
1 回答
615 浏览

mysql - 真的有必要为文本列设置两个全文索引吗?

我继承了使用 MySQL 和 PHP 构建的自定义 CMS 的代码库,它使用全文索引在内容(文本)字段中进行搜索。在分析数据库结构时,我发现所有相关表都是按以下方式创建的(简化示例):

如您所见,全文索引是以通常的方式创建的,但随后也会单独添加每一列,我相信这会创建两个不同的索引。

我联系了之前的开发人员,他说这是创建全文索引的“正确”方法,但根据我在互联网上找到的每个示例,没有这样的要求,这就足够了:

该表有超过 80,000 行,并且变得越来越难以管理(整个数据库接近 10GB),所以我想删除任何不必要的数据。

提前谢谢了。

0 投票
3 回答
23956 浏览

sql-server-2008 - 如何在 SQL Server 2008 中查找数据库的全文索引?

您好我正在寻找一个查询,该查询能够使用 SQL Server 2008 在数据库中的所有表和列上找到全文索引。欢迎为此提供任何信息或帮助

0 投票
1 回答
126 浏览

mysql - MySQL全文搜索一对多

问题:我需要对包含多行(一对多)的字段进行全文搜索。


我有这些架构:

公司(1500 万+++)

-ID

-公司名称


类别

-公司编号

-categoryname(带全文索引)


样本数据:

公司

编号 | 公司名称

1 | A公司

类别

公司ID | 分类名称

1 | 银行 1 | 金融


目标: 我需要通过使用 IN BOOLEAN MODE 和 EXACT MATCH 获得所有提供“银行金融”的公司。

下面的查询不会有结果,因为“banking”和“finance”在不同的行上:


我的解决方案: 我重组了架构,添加了一个名为“Categories”的新表,其中包含“Category”中的所有连接类别(带有全文索引),当然还有一个 companyid。这可以完成工作,这是我能想到的最好/有效的方式。

我已经尝试过不同的方法,例如: - group_concat + like - union + full text

我仍然想知道是否有比我的解决方案更好的方法?

0 投票
1 回答
904 浏览

xpages - xpages全文搜索

我一直在关注 Dave 关于全文搜索的 Notesin9 视频。

我的源代码是:

在这里,包括一个用于输入搜索词的文本字段、一个用于查看查询词的计算字段、一个标记为搜索的按钮作为提交按钮。在文本字段中输入值,当我按下搜索按钮时,出现错误 500。

错误在哪里?请帮忙。

0 投票
0 回答
68 浏览

mongodb - MongoDB全文搜索是否不区分大小写?

以下文档(http://docs.mongodb.org/manual/tutorial/search-for-text/)文本索引必须不区分大小写。但正如我所见:

什么都没找到


找到 1 条记录。

为什么?

0 投票
0 回答
507 浏览

sql-server-2012 - SQL Server 会自动运行 ALTER FULLTEXT INDEX ON [table] START FULL POPULATION 吗?

SQL Server 2012 中是否有任何进程可以自行运行 FULL POPULATION?我们遇到了性能问题,所有全文索引都设置为 AUTO UPDATE_CRAWL。但是在从这个查询中查看正在运行的线程时......

SELECT getdate() as "RunTime", st.text, qp.query_plan, a.* FROM sys.dm_exec_requests a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) as st CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) as qp where session_id in(221)

...我发现这是正在运行的进程之一...

ALTER FULLTEXT INDEX ON [dbo].[my_tbl_name] START FULL POPULATION

根据我的阅读,只有在有人手动启动它时才应该运行它。但是我们的代码中没有任何内容可以调用该命令。是否有一些自动触发它的过程?我想知道我们是否从表中删除了所有行并重新填充它们,然后它可能会运行,但我在我们的代码中也看不到任何地方可能会发生这种情况。

由于仅将 1/2 的数据库从 SQL 2005 迁移到 SQL 2012,因此我们受到 CPU 的限制,而且我们正在抓紧救命稻草。这也在 VMware 主机、1 个 CPU、8 个内核和 128 GB RAM 上。没有意义。任何建议表示赞赏。