在一个后台为MYSQL的网站上集成搜索

2024-05-18

我有一个位置搜索website http://www.jammulinks.com对于一个城市,我们首先收集该城市所有可能类别的数据,如学校、学院、百货商店等,并将其信息存储在单独的表中,因为每个条目除了名称、地址和电话号码外都有不同的详细信息。

我们必须在网站中集成搜索,以便人们能够找到信息,因此我们构建了一个索引表,其中存储了同一类别的类别和相关关键字,以及如果搜索该类别,则可以获取大量内容的表。后来,我们添加了搜索姓名和地址的功能,并添加了另一个主表,其中包含所有表中的这些字段到一个地方。现在我的疑问如下

  • 应用程序设计不合适,我们写了像 select * from master where name like "%$input%" 这样的查询,由于我们的数据库是服务器端的 MYSQL 和 PHP,有什么建议可以改进设计吗系统的?
  • 人们想要更多的功能,例如拆分关键字并根据相关性对它们进行排名等,是否有任何现成的框架可以在数据库上运行搜索。
  • 我尝试在 MYSQL 中使用全文搜索,它对我来说似乎很有效,这足够了吗?

如果我错了,请纠正我,我研究了 Lucene 和 Google Custom Search,他们不是通过抓取现有网页并构建自己的索引来创建索引吗?我在 mysql 数据库上有一组表,我必须在其中应用搜索。我有什么选择?


为了解决你的观点:

  1. 使用%input%是very bad。这将导致每个查询都进行全表扫描。在任何负载量下,甚至在远程大型数据集上,您的数据库服务器都会阻塞。

  2. 单独使用 RDBMS 并不是一个好的解决方案。通过寻求单独的搜索解决方案,您正在寻找正确的位置。能够与 RDBMS 良好通信的东西是好的;在 RDBMS 中运行的东西不会满足您的需要。

  3. MySQL 中的全文搜索适用于非常基本的关键字搜索,仅此而已。有用的范围极其有限 - 您需要一个高度可预测的使用模型来利用内置搜索。它被称为“搜索”,但它并不是大多数人所认为的真正的搜索方式。与我们期望的 Google 和 Bing 的搜索结果质量相比,它根本无法相比。从“搜索”这个词的意义上来说,它是另一回事 - 就像记事本与 Word 一样。它们都是需要输入的内容,但仅此而已。

就处理搜索的单独系统而言,Lucene 非常好。本质上,Lucene 可以按照您希望的方式工作。您可以通过编程方式与其交互以插入可索引文档。同样,一个谷歌设备 http://www.google.com/enterprise/search/gsa.html (not 谷歌自定义搜索 http://www.google.com/coop/cse/)可以提供直接元提要,公开您想要索引的任何内容,例如直接来自数据库的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一个后台为MYSQL的网站上集成搜索 的相关文章

  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • Sql:计算随时间的增长

    我几周前发布了这个问题 但我认为我没有清楚地提出这个问题 因为我得到的答案不是我想要的 我认为最好重新开始 我正在尝试查询数据库以检索一段时间内唯一条目的数量 数据看起来像这样 Day UserID 1 A 1 B 2 B 3 A 4 B
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • grep 查找 Unix 中的特殊字符

    我有一个日志文件 application log 其中可能包含以下多行普通和特殊字符字符串 Q 我想搜索包含这个特殊字符串的行号 grep Q application log 上述命令不返回任何结果 获取行号的正确语法是什么 Tell gr
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • DOMPDF - 未找到“字体”类

    我正在尝试通过命令行添加字体 每次我尝试都会收到以下错误 Fatal error Class Font not found in home scripts public html MarketingPalv2 load font php o
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • Yii 查询时对相关模型的限制

    我遇到了极限问题 我正在使用的代码如下 model PostCategory model record model gt with array posts gt array order gt posts createTime DESC li
  • laravel 5.4 在请求验证之前修改数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我有我的自定义请求 它扩展了 Backpack CrudController 现在我想重写 ValidatesWhenResolv
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B

随机推荐