sql - MS Sql 全文搜索与 LIKE 表达式

标签 sql database full-text-search sql-like

我目前正在寻找一种方法来搜索具有许多不同字段(nvarchars 和 bigints)的大型数据库(500MB - 10GB 或更多,10 个表)。 许多应该搜索的字段不在同一个表中。

示例:搜索“5124 Peter”应该返回所有项目,即...

  • 有一个ID,里面有5124,
  • 在标题或描述中使用“Peter”
  • 项目类型 ID 为 5124
  • 由名为“peter”的用户或 ID 中包含 5124 的用户创建
  • 由街道地址中包含“5124”或“peter”的用户创建。

我应该如何进行搜索?我读到 MS-Sql 的全文搜索比使用 LIKE 关键字的查询性能更高,我认为语法更清晰,但我认为它不能搜索 bigint(id) 值,我读到它有索引的性能问题,因此减慢了对数据库的插入。在我的项目中,插入多于读取,所以这可能是个问题。

提前致谢, 标记

最佳答案

您可以尝试独立的搜索引擎,例如 Sphinx Search:

http://www.sphinxsearch.com/index.html

或 Apache Solr:

http://lucene.apache.org/solr/

关于sql - MS Sql 全文搜索与 LIKE 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036850/

相关文章:

SQL Server - 按小时、多天查询

sql - 更改数据库列的顺序

php - 将图像保存在数据库mysql中

mysql - 使用 MySQL 全文搜索匹配部分单词?

php - 从 SELECT * FROM $table 中排除一个字段

java - 为什么我不能将 .dump 命令与 JDBC 一起使用?

sql - ADODB CreateParameter 方法中名称参数的用途是什么?

sql - 用 SQL 或应用程序语言定义数据库模式哪个更好?

mysql - MySQL 中的复合 FULLTEXT 索引

mysql - 如何修复 3 个字符的全文搜索?