php - 相似搜索和语义搜索

标签 php mysql full-text-search search-engine semantics

我对语义网络搜索没有什么问题。我正在 PHP/MySQL 中构建应用程序,它将作为“语义”搜索引擎。这个问题一般来说确实很难,但我的情况稍微容易一些。我只需要搜索我网站上的数据以及我将添加到数据库的数据。

这个想法是 somoene 搜索食物,因此系统除了食物文档之外还返回包含单词 Pizza 的文档,因为 Pizza 是一种食物。我的网站将非常具体,因此可以对所有这些关系进行建模(至少我这么认为),但我预计,不会有一切。第一个问题是我不知道如何将这些数据保存到数据库中,我的意思是这种关系,因为它将是 N:M 关系,并且它必须非常灵活,因为它将用于网站上的每次搜索。它将“像树一样”,从最抽象到最具体,例如食物 -> 披萨 -> 玛格丽塔,还有食物 -> 素食 -> 玛格丽特。我的想法是使用语义网络中的三元组,并将所有关系保存为推理三元组。

下一个问题是关于用户数据输入的。假设用户将能够向他们的文档添加一些“标签”,并且我的应用程序应该将它们连接到我的三元组。因此,如果用户输入 Pizza,首先我的应用程序应该建议他所有已知的披萨,如果他选择 margherita,那么他的文档将连接到 Pizza margherita,但如果他添加一些未知的披萨,我的应用程序将把他的文档与 Puzza 连接仅(更高抽象)。

后来每个搜索查询都会在我的三元组模型中搜索最佳匹配并搜索相关文档,这是个好主意吗?

我的问题非常笼统,如何设计这个应用程序,第一个想法或第一个插入应该是什么。

感谢您提供解决此问题的任何想法。

最佳答案

快速的方法之一是将诸如 “Food Pizza margherita”和“Food Pizza Something”连接到类别 ID 和/或文档集,以便您可以对相关类别/执行全文和支持形态的搜索文件并显示上/下类别。

这种类型的查询可以使用库存 MySQL 全文搜索 http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html 来完成。或外部全文搜索引擎,如 Lucene http://lucene.apache.org/或狮身人面像http://sphinxsearch.com

关于php - 相似搜索和语义搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719307/

相关文章:

php - 随机获取作者

sql - 如何使这个 mysql 子查询工作

SQL Server 2005 全文搜索多个表和列

javascript - 使用 php 提交 html 并使用 Ajax 和 jQuery 保存到 MySQL Db?

php - 如何在 Apigen 中排除多个文件夹?

php - 试图检测选择数据库错误的奇怪行为

php - 是否可以将数据回显到文本框中或将这些数据保存在 MySQL 上?

php - 合并数据并减少表中的行数?

使用 PDO 进行 PHP 全文搜索

performance - Postgres 全文搜索性能问题