Database 全文搜索与标准数据库搜索

Database 全文搜索与标准数据库搜索,database,search,full-text-search,Database,Search,Full Text Search,我想知道全文搜索(在文件中搜索数据)和标准数据库搜索(如在ect中)之间的区别 我注意到,在文件中并没有数据类型,但在数据库中可以为特定数据定义数据类型 我感兴趣的是什么样的搜索速度更快,两者的优缺点是什么 谢谢 全文搜索有几个优点 索引: 比如: WHERE Foo LIKE '%Bar'; 无法利用索引。它必须查看每一行,看看是否匹配。但是,全文索引可以。事实上,全文索引可以在匹配单词的顺序、这些单词之间的距离等方面提供更大的灵活性 词干分析: 全文搜索可以隐藏单词。如果您搜索run,您可

我想知道全文搜索(在文件中搜索数据)和标准数据库搜索(如在ect中)之间的区别

我注意到,在文件中并没有数据类型,但在数据库中可以为特定数据定义数据类型

我感兴趣的是什么样的搜索速度更快,两者的优缺点是什么


谢谢

全文搜索有几个优点

索引:

比如:

WHERE Foo LIKE '%Bar';
无法利用索引。它必须查看每一行,看看是否匹配。但是,全文索引可以。事实上,全文索引可以在匹配单词的顺序、这些单词之间的距离等方面提供更大的灵活性

词干分析:

全文搜索可以隐藏单词。如果您搜索run,您可以获得“run”或“running”的结果。大多数全文引擎都有多种语言的stem词典

加权结果:

全文索引可以包含多个列。例如,您可以搜索“桃子派”,索引可以包括标题、关键字和正文。与标题匹配的结果可以权重更高,相关性更强,并且可以排序显示在顶部附近

缺点:

全文索引可能是巨大的,比标准B树索引大很多倍。出于这个原因,许多提供数据库实例的托管提供商禁用了此功能,或者至少为此收取额外费用。例如,上次我检查时,WindowsAzure不支持全文查询


全文索引的更新速度也可能较慢。如果数据变化很大,与标准索引相比,更新索引可能会有一些延迟。

谢谢您的回答。这对我很有用。但我总是想知道全文搜索在后台是如何工作的。我需要的是一些参考来了解它。我想知道所有这些工作的模式。这是一个巨大的主题,它与SQL Server、Oracle、Postgres等不同。任何东西都可以帮助我,无论是SQL Server、Oracle还是Postgres。如果你知道一些推荐信,我将不胜感激。谢谢。也许可以读一下杜松子酒和GiST索引?这里有一些文档。@MikeChristensen只是想更正一下,MS FTS无法搜索主要通配符搜索。它不适用于您提到的案例,即“条形”。但是,它可以用于“Bar%”