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

mysql - 全文搜索总是返回空结果集

我有一个名为“fact”的表,标题列应该是全文索引。

首先,我添加一个全文索引:

所以,我插入行:

然后我执行搜索:

当我执行以下查询或任何其他带有“包含”语句的查询时,我得到 emtpy 结果集:

我必须使用这种说法,而不是反对或喜欢。有谁碰巧知道为什么会这样?谢谢你。

0 投票
2 回答
516 浏览

neo4j - Neo4j 中的搜索查询:如何使用内部 TFIDF / levenshtein 或其他算法在 START 查询中对 neo4j 中的结果进行排序?

我正在研究一个使用维基百科主题名称的模型,用于我在全文索引中的实验。

'united states'我在“主题”(旧版)上设置和索引,并对:进行全文搜索

第一个结果根本不相关:

[...]

真正的“美国”深埋在名单的深处。

因此,它提出了一个问题 ,为了在结果上找到最佳匹配(例如,levershtein、bi-gram 等算法),您首先必须获取与模式匹配的所有项目。

这将是一个严重的限制,因为在这种情况下我有 21K 行,大约 4 秒。

neo4j 使用哪些算法对全文搜索 (START) 的结果进行排序? 它使用哪种原理对结果进行排序以及如何使用密码对其进行更改?在文档中编写使用 JAVA api 来应用 sort() - 有一个教程来指定要修改哪些文件并且在任何调整之前知道使用哪个排名原理是非常有用的。

根据以下评论进行编辑 - 结果分页可能为: n=node:topic('name:(united states)') return n skip 10 limit 50;

(在限制之前跳过)但我需要确保第一个结果在分页之前是有意义的。

0 投票
1 回答
108 浏览

mysql - MySQL全文索引搜索返回错误结果

我有一个 MyISAM 表,NAME列上有全文索引VARCHAR(200)。我正在使用布尔模式搜索表格,我得到了非常奇怪的结果。示例:让我们在 NAME 列中查找带有单词“TRULY”的记录:

select * from table_MYISAM WHERE MATCH(NAME) AGAINST('+TRULY' IN BOOLEAN MODE);

这不返回任何结果。现在让我们同时查找“TRULY”和“RICHARD”:

select * from table_MYISAM WHERE MATCH(NAME) AGAINST('+TRULY +RICHARD' IN BOOLEAN MODE);

此查询返回 NAME 中包含“RICHARD”的数十万条记录,但没有一条包含“TRULY”。到底是怎么回事?

0 投票
0 回答
290 浏览

full-text-search - Mariadb 与视图的匹配失败;在 MySql 中成功

下面的全文搜索查询在 mariadb 中失败,但在 mysql 中成功(使用 phpmyadmin 从 mysql 数据库导入的 mariadb 数据库)。

如果替换了基表,则在 mariadb 和 mysql 中查询都会成功。所以显然 mariadb 无法匹配视图。

有针对这个的解决方法吗?它搞砸了我的迁移。

谢谢。

选择TitleNodes_View哪里(匹配(Title,,,,,Caption)反对( '某事' Description))LocationBody

0 投票
1 回答
609 浏览

mysql - 使用 MySQL FULLTEXT 覆盖/复合索引

考虑下表:

要执行全文搜索以匹配类别sometextdescription字段中的字符串,我运行以下命令:

这很好用,直到表变得很大(特别是因为我需要将最小索引词标记大小设置为 1 或 2)。

  1. 有很多类别,并且行的分布在类别之间相当相等
  2. 使用非 FULLLTEXT 索引,您可以创建复合索引,CREATE INDEX yippie ON item(category,name)如果您正在执行类似的SELECT i.id FROM item i WHERE category IN (2) AND name LIKE '%sometext%操作(请注意,我并不是说 '%sometext%' 本身是有效的,但是使用由于复合 coving index 的类别 where 子句)。
  3. category梦想是在列和列上都有某种复合索引,name例如:CREATE FULLTEXT INDEX yippie ON item(category,name),但这当然是无效的

有谁知道使用 FULLTEXT 搜索实现#3 效果的方法(无需为每个类别创建单独的表)?

0 投票
0 回答
432 浏览

mongodb - MongoDB文本搜索添加语言

是否可以在 MongoDB 支持的现有语言中添加一种语言?喜欢定义自定义停用词?我想使用斯洛文尼亚语的文本搜索。

0 投票
2 回答
182 浏览

sql-server - 针对文档的 SQL Server 全文搜索(多个相关表和字段)

我有一个包含多个表的文档(在本例中为发票)结构:

  • Invoice Header(编号(PK)、客户名称、客户地址……)

  • Invoice Lines(发票编号(PK),行号(PK),描述,数量,...)

  • Invoice Header Comments(发票编号 (PK)、注释编号 (PK)、注释)

当我运行搜索时,我想对整个文档执行它(作为一个实体,而不是针对单独的字段(客户名称 + 客户地址 + 描述 + 评论)。

示例:所有与“Bicycle AND Berlin”或“Munich OR Berlin”或“'Fast Delivery'”有关的文件......

你会推荐什么方法来解决这个问题?

我是否应该创建一个单独的索引表来存储我想要索引的所有字段的连接值(客户姓名、客户地址、描述、评论) - 每个文档一行:

文档索引(文档编号(PK),索引)在这种情况下,我应该如何保持“文档索引”表是最新的?

我尝试创建连接值的索引视图,但遇到了限制 - 索引视图不能包含子选择或使用其他视图。

我会很感激所有的想法。

0 投票
0 回答
288 浏览

sql-server - Azure SQL 搜索。全文搜索。优化选择语句

我有一张大约有 2000 万行的表格。该数据库托管在 Azure 上。(S2层)我在其中一列上设置了全文索引(该列包含Counties,States,Cities,Towns,Townships,Vills,Schools,College等)。

这是一个选择语句的示例:

每当我在常规 SQL Server(不是天蓝色)上启动时,我都会在 1 秒内获得约 35k 行。但在 azure 上大约需要 6 分钟。需要这么多的问题是因为它达到了 DTU 最大值。当这个查询执行时,它只需要大约 1% 的 CPU 使用率和 100% 的数据 IO 使用率(大量读取)。所以我真的很想优化这种查询。即使在 p11 定价层上,它也比常规 SQL Server Developer Edition 慢得多。

以下是我能想到的几个解决方案:

  1. 停止使用 SQL Azure 并切换到 Azure VM,我可以在其中托管常规 SQL Server。我认为由于大量读取而达到 DTU 限制时的问题可能会得到解决

  2. 优化查询。我认为应该有一种方法可以创建排除大约 95% 的行的查询。这是上面指定的行查询示例返回:Jefferson Union High School District, Miami-Yoder School District 60-JT, Upper Saint Clair School District, Louisville/Jefferson County。当 SQL Server 返回仅包含特定单词中的单词的行时,也许有一种创建查询的方法,所以我没有得到,因为在查询中未指定Jefferson Union High School Districtwords Union, High, 。School

  3. 重组表以更改读取次数。(不确定是否可以)

谢谢

0 投票
1 回答
58 浏览

mysql - MySQL Inserting data from one table to another - error FULLTEXT index

Hey guys i'm trying to create a stored procedure where I enter in the Loan_ID from my loan_table and it moves it into another table called loan_history. I'm unsure on what I'm doing wrong. The error I'm getting is 'Can't Find FULLTEXT index matching the column list'

Schema

0 投票
1 回答
329 浏览

solr - 为什么 Solr for Windows 需要这么多内存?

为什么 Solr for Windows 需要这么多内存?

我的 Solr 数据是 SEO 关键字(1-10 个词,最多 120 个符号长度,8 亿行)和一些其他数据。架构是:

Solr for Windows 占用约 10 GB 的 RAM,有时需要更多(高达 16 GB)。现在我将它配置为使用SOLR_JAVA_MEM=-Xms8192m -Xmx16384m并且它可以工作,但是当它是 4 GB 或更少时 - Java 因错误 OutOfMemory 而崩溃。

那么,我做错了什么?如何配置 Solr 以减少 RAM?我可以提供任何部分solrconfig.xml

solrconfig.xml

所以,我到底在做什么和想要什么。

我向 Solr 添加了 8 亿行。这还不是全部——我有 30 亿行的数据集。行是搜索引擎优化关键词,如“求职”、“在纽约找工作”等。“建议”字段包含许多相同的常用词,如“工作”、“下载”等。我认为,“下载”一词存在于所有行的 10% 中。

我做服务,用户可以在其中进行“下载”等查询并获取所有包含“下载”一词的文档。

我创建了一个桌面软件 (.NET) 来在 Web 服务界面 (PHP+MySQL) 和 Solr 之间进行通信。该软件从 Web 服务获取任务,向 Solr 进行查询,下载 Solr 结果并将其提供给用户。

为了获得所有结果,我将 GET-query 发送到 Solr,例如:

如您所见 - 我使用 fq 和排序而不使用分组。也许有人看到我在 Solr 查询或方法中的错误 - 请随时告诉我。谢谢。