问题标签 [full-text-search]

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 回答
2274 浏览

c# - 如何为知识库系统构建搜索引擎?

我需要使用 C# 在我们的知识库系统中构建全文搜索功能。我该如何开始?

0 投票
1 回答
5027 浏览

.net - 如何使用 Lucene.NET 索引和查找数字?

我已经使用Lucene.NET(2.0 版)实现了对网站的全文搜索。索引和搜索效果很好,但我有一个问题。如果我查找数字(电话号码、产品编号等)作为搜索词,我不会得到任何结果文档。

我正在使用 Lucene.Net.Analysis.SimpleAnalyzer 类。我想我必须更改 Analyzer 和/或 Tokenizer。

有什么建议吗?

谢谢!

0 投票
6 回答
18855 浏览

sql-server - %book% 的全文目录/索引搜索

我正试图围绕如何搜索出现在单词/表达式中间的东西——比如搜索“LIKE %book%”——但在 SQL Server (2005) 全文目录中。

我怎样才能做到这一点?在搜索表达式的开头几乎看起来两者都支持通配符,CONTAINS而且FREETEXT真的不支持通配符- 真的可以吗?

我原以为FREETEXT(*, "book")会发现里面有“书”的任何东西,包括“重新预订”或类似的东西。

0 投票
2 回答
1302 浏览

sql - 部分关键字搜索 (MS SQL 2005)

目前,我有一个存储过程,其主要目标是通过电影和电视节目的数据库表进行全文搜索。为了让它进行部分关键字搜索,我在 SQL 中添加了一些代码,以空格分隔搜索查询,并输出如下语句:

"batman*" ~ "be*"

例如,原始字符串“batman be”可以在用户键入时从页面上的文本框生成,并且在每个 javascript keyup 事件中,我将该文本框中的任何内容发送到存储的 proc 以获取结果以获得结果为我输入(如自动完成)。在这种情况下,用户可能一直在寻找“Batman Begins”或“The Batman: Batgirl Begins”(电视剧集),结果它们都应该出现。

以下是我的查询示例。@partialKeywordString 在上面的示例中是"batman*" ~ "be*".

我对查询的问题是排名似乎并不完全符合我的预期。如果我只搜索“蝙蝠侠”,人们会认为所有以“蝙蝠侠”开头或仅包含“蝙蝠侠”一词的电影标题都会首先出现。但他们没有。
以下是仅搜索“batman”时发生的情况的示例结果:

“蝙蝠侠:动画系列 - 第 114 集”
“蝙蝠侠和罗宾的冒险 - 第 218 集”
“蝙蝠侠和罗宾 - 第 101 集”
“蝙蝠侠 - 第 101 集”
“蝙蝠侠和罗宾 - 第 204 集”

更靠后的是我正在寻找的电影——“蝙蝠侠开始”,甚至只是“蝙蝠侠”。

我正在寻找有关如何调整此查询的建议——我绝对不是 SQL 专家,我觉得我只是手动处理了上面的代码以使其工作。我觉得有一个更优雅或更强大的解决方案,但我还没有找到它。

先感谢您

0 投票
2 回答
1747 浏览

database - 比较:数据库全文搜索到搜索引擎(Lucene)

从 stackoveflow.com 的角度来看(由 2-3 名工程师组成的团队构建一个旨在扩展的网站项目),在开发过程的早期花费精力来构建基于 Lucene/Autonomy 的搜索是否有意义……而不是基于数据库全文搜索。

优点/缺点:
对于像 nutch 或自治这样的成熟 Lucene 实现,在后期迁移到 Lucene(这是不可避免的)的成本可以忽略不计。
大量添加额外的索引服务器(比如使用 nutch)来维护不断增长的搜索索引相对容易。
对于 Lucene 实现,我很可能需要一个额外的服务器来维护内存索引(在扩展过程的早期阶段)。

0 投票
2 回答
25303 浏览

character-encoding - 如何在 SQLExpress 文本字段中插入中文字符?

如何在 SQLExpress 文本字段中插入中文字符?我正在使用 VS 2008 中的 SQL Express。当我通过我编写的导入应用程序或通过从 Visual Studio 中的数据视图粘贴它们来添加中文字符时,它们最终会变成问号。

0 投票
5 回答
6328 浏览

sql-server - SQL Server 加权全文搜索

目前我有一个表,我搜索 4 个字段,FirstName、LastName、MiddleName 和 AKA。我目前对行进行了CONTAINSTABLE搜索,并且可以正常工作。不太好,但它有效。现在我想让名字的权重更高,中间名的权重更低。

我找到了命令ISABOUT但如果我必须按单词而不是列来执行它似乎毫无价值(希望我理解错了)。如果它是逐字的,这不是一个选项,因为我不知道用户将输入多少字。

我在这里找到了讨论相同解决方案的线程,但是我无法使公认的解决方案起作用。也许我做错了什么,但无论如何我都无法让它工作,它的逻辑似乎真的……很奇怪。必须有一个更简单的方法。

0 投票
1 回答
5089 浏览

sql - 是否可以使用 CONTAINSTABLE 在 column1 中搜索“word1”和 column2 中的“word2”

我们曾经有一个搜索,它会检查两列中的某些单词。两列都必须包含一些提供的单词,所以我们使用 AND ... 毫无疑问,FULLTEXT INDEX 用于列。

选择或多或少是这样的:

现在我们需要在结果中添加排名。我们想使用 CONTAINSTABLE 功能......只有一列很简单。就像是:

是否可以使用 2 列但考虑到我只需要在 column1 中搜索 word1 或 word2 (如果我们在 column2 中有 word1 或 word2 不感兴趣)。还要考虑在 where 子句中的 AND。有没有类似的东西:

0 投票
6 回答
381325 浏览

search - 无需索引即可在文件中搜索字符串的工具

我必须在一个非常古老的遗留应用程序中更改一些连接字符串,而制作它的程序员认为在整个应用程序中到处都贴上连接字符串是一个好主意。

Visual Studio 的“当前项目”搜索速度非常慢,我不信任 Windows Search。

那么,最好的免费、非索引文本搜索工具是什么?它应该做的就是返回一个列表,其中包含在文件夹及其子文件夹中包含所需字符串的文件。

我正在运行 Windows 2003 服务器。

0 投票
4 回答
10197 浏览

sql-server - 全文搜索排名(SQL Server)

在过去的几个小时里,我一直在处理各种不同的 SQL Server 全文搜索变体。但是我仍然无法弄清楚排名是如何运作的。我遇到了几个例子,这些例子真的让我很困惑,他们的排名如何高于其他人。例如

我有一个没有索引的 5 列 + 更多的表。都是nvarchar领域。

我正在运行这个查询(好吧几乎......我用不同的名字重新输入了)

因此,如果我搜索11/05/1964 JOHN JACKSON,我会得到"11/05/1964" OR "JOHN*" OR "JACKSON*"和这些结果:

所以最后我的问题。我看不到第 1 行和第 2 行如何排在第 3 行之上,以及为什么第 3 行的排名与第 4 行相同。到目前为止,第 2 行应该具有最高排名,因为搜索字符串也与名字和姓氏匹配作为出生日期。

如果我将 OR 更改为 AND,我不会得到任何结果。