Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在数据库中实现搜索?_Database_Search - Fatal编程技术网

Database 如何在数据库中实现搜索?

Database 如何在数据库中实现搜索?,database,search,Database,Search,我正在尝试对我的网站进行搜索: 不幸的是我不知道怎么做 对于搜索功能来说,这样就足够了吗?e、 g: SELECT * FROM Employees WHERE (Title Like 'Title%') 还是有更专业的方法?(例如正则表达式)LIKE是完美的您可能需要查看全文搜索引擎,例如 Lucene是一个独立的软件编程,它对你告诉它的任何东西进行索引(例如,数据库中的一些对象)。执行搜索时,首先使用Lucene API搜索全文索引并检索一组对象ID。然后执行简单的数据库检索以获取具有这些

我正在尝试对我的网站进行搜索:
不幸的是我不知道怎么做

对于搜索功能来说,这样就足够了吗?e、 g:

SELECT * FROM Employees WHERE (Title Like 'Title%')

还是有更专业的方法?(例如正则表达式)

LIKE是完美的

您可能需要查看全文搜索引擎,例如


Lucene是一个独立的软件编程,它对你告诉它的任何东西进行索引(例如,数据库中的一些对象)。执行搜索时,首先使用Lucene API搜索全文索引并检索一组对象ID。然后执行简单的数据库检索以获取具有这些ID的对象。

如果您询问如何在网站上实现搜索功能(如每个/某些页面顶部的搜索框),则这取决于网站的实现

  • 如果使用数据库存储来存储所有网站内容,则可以使用数据库搜索。但搜索内容/标题/等,或使用全文搜索
  • 如果您使用任何CMS/portal解决方案,它可能已经支持搜索功能
  • 如果使用静态内容,则必须通过文件搜索来实现

  • 如果要实现对关系数据执行特殊搜索的系统,可以使用以下几种方法:

  • 使用开源搜索引擎,例如
  • 使用数据库的文本索引功能(如果有),这取决于您使用的数据库。有关的信息:///
  • 使用-编写您自己的搜索系统,尽管如果您能够使用选项1或2,这有点毫无意义

  • 对于关系数据库,您几乎只剩下子字符串搜索(LIKE),这可能不够灵活,而且只对短列(如标题)有效

    因此,您可能还需要使用全文搜索引擎(如Lucene)。 在这种情况下,在数据库之外会有一个全文搜索索引,用于搜索关键字

    一些关系数据库对其文本列具有可选的全文搜索功能。 使用这些,您可以使用SQL发出全文查询(甚至可以将其与针对其他列的查询相结合)。 在甲骨文中,它看起来像

    SELECT id FROM table WHERE CONTAINS(text_column, 'java AND text', 1) > 0;
    

    有趣的是,我从未真正想过全文索引实际上是如何工作的。