从头开始构建一个快速的私人文章语义MySQL搜索引擎

2024-01-25

我正在开展一个项目,其中涉及全文 and semantic搜索网站内的文章(如果无法合并,用户可以选择任一选项)。这些文章是订阅式的,只有登录后才能搜索;因此外部搜索引擎或其 API 无法访问它们。

我读过有关狮身人面像的文章 http://www.ibm.com/developerworks/library/os-php-sphinxsearch/用于全文关键字搜索(我打算在这方面实现它),但我不确定如何由此构建语义搜索引擎。例如搜索“美国总统”应列出包含美国总统实际姓名的文章,例如乔治·华盛顿、比尔·克林顿(或威廉·杰斐逊·克林顿)。

我的想法是,也许可以使用某种标记系统来关联各种关键字,例如将总统与乔治·华盛顿和总统与比尔·克林顿联系起来,但由于数据确实很大,而且会存在许多这样的关系,我不知道如何进一步推进这个想法。

请建议我如何从头开始构建语义搜索引擎(我猜 Sphinx 可以处理全文关键字搜索)。否则,请告知我任何基于互联网的资源,或者是否有任何语言的现有软件可以集成到我的应用程序中。

附:我选择的数据库是 MySQL(如果其他数据库系统更适合该任务,请提出建议),我更喜欢用 PHP 进行编程,但如果我需要学习 Python 或任何其他对这项任务更有效的语言,我会效率。

我已经搜索过答案.semanticweb.com http://answers.semanticweb.com


我会用阿帕奇·索尔 http://lucene.apache.org/solr/。我认为它比 Sphinx 更灵活。 Solr 支持全文搜索,我相信有语义支持的附加组件(比如siren http://siren.sindice.com/download.html)。 Solr 是 Lucene 的服务器化版本。

Solr 支持 SynonymFilter:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#SynonymFilter http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#SynonymFilter

这篇文章讨论了优化内容检索的一些策略http://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr http://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr

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

从头开始构建一个快速的私人文章语义MySQL搜索引擎 的相关文章

  • 在 PHP 中将 CSV 写入不带括号的文件

    是否有本机函数或实体类 库用于将数组写入 CSV 文件中的一行而无需封装 fputcsv将默认为 如果没有为封装参数传入任何内容 谷歌让我失望了 返回一大堆有关的页面的结果 fputcsv PEAR 的库做的事情或多或少与fputcsv 工
  • 关于加拿大短信网关提供商的建议[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我很好奇 如果我能够接受传入的短信到某个号码 然后将其传递给 PHP 中的服务器端应用程序 会带来多少麻烦 金钱 我最终会通过电子邮件地址发回短信 有
  • 重复使用相同的卷曲手柄。性能大幅提升?

    在 PHP 脚本中 我对不同的 URL 执行了许多不同的curl GET 请求 一百个 将重复使用来自curl init提高性能 还是与请求的响应时间相比可以忽略不计 我这么问是因为在当前的架构中保持相同的句柄并不容易 交叉发布自我应该关闭
  • 外键和索引

    我有 2 张桌子 products and 类别 每个类别有很多产品 一个产品可以属于多个类别 products product id int primary auto increment name unique etc 类别 catego
  • session_regenerate_id 没有创建新的会话 id

    我有一个脚本 旨在完成当前会话并开始新的会话 我使用了一段代码 它在我的开发计算机上运行良好 但是 当我将其发布到生产服务器时 会话 ID 始终保持不变 以下是我重新启动会话的代码 session start SESSION array P
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • Symfony2中如何获取所有post参数? [复制]

    这个问题在这里已经有答案了 我想获取a的所有post参数symfony http symfony com Form I used all parameter this gt get request gt getParameterHolder
  • 删除表的重复项

    In my activity logs 它包含列 material name user id mod result 这标志着测试是否通过 失败 cert links 不知何故 用户生成了两倍的条目material name与cert lin
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • AWS S3 上传的图像已损坏

    我正在 AWS ec2 ubuntu 机器上工作 我的代码在 cakephp 中 当我尝试将任何图像上传到 AWS S3 时 它都会损坏 虽然它在核心 php 代码中运行良好 这是我的控制器代码 if this gt User gt sav
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • Zend Framework Zend_Form 装饰器: 位于按钮元素内部?

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • MySQL - 选择一行 - 然后相对于所选行的下一个和上一个

    我会尽力澄清这一点 我需要在不使用 id 的情况下选择特定行和该选定行的前一个相对行以及该选定行的下一个相对行 这可能吗 简而言之 上一篇和下一篇 我不能 也许我只是不知道如何 使用 id 的原因是因为它们不是按顺序排列的 正如您从这个相当

随机推荐

  • 使用主干js加载模板

    我开始进行 javascript 开发 并使用 node js 作为休息 API 和使用主干的客户端做了一个简单的项目 一切看起来都很完美 直到我想从我的 js 中获取模板 我发现了不同的方法 其中一些需要一段时间 例如一年 但我不明白哪种
  • 使用 Ember Data 处理服务器端验证

    我在使用 Ember 和 Ember Data 处理服务器端验证时遇到问题 当发生验证错误时 API 返回代码 422 然后 Ember 数据会触发becameInvalid模型上的回调 从这里开始 我不确定处理我遇到的错误的最佳方法是什么
  • $(e.currentTarget) 和 $(this) 之间有区别吗?

    下面两种方法有什么区别吗 1 比 2 快吗 1 selector on click function this do stuff with clicked element and 2 selector on click function e
  • 将参数传递给 IIFE

    将参数传递给存储在变量中的 IIFE 的正确语法是什么 下面的例子告诉我foo未定义 无论我是否调用该函数 var bar function foo return getFoo function return foo foo console
  • 错误 440“数组索引越界”

    我正在尝试下载带有主题关键字的 Excel 附件 我设法创建了一个代码 但有时它给出了错误440 Array Index out of Bounds 代码就卡在这部分了 If Items i Class Outlook OlObjectCl
  • d3.js v4.0 中 d3.scale.category10() 的等效项是什么?

    我正在尝试通过交互式 Web 可视化一书来学习 d3 但 4 0 版本发生了很多变化 我真的无法弄清楚的一件事是是否有 d3 scale category10 的等效项来轻松映射到颜色 新版本中是否有类似的东西 或者我们需要使用 math
  • 向函数传递两个指向同一联合成员​​的指针是否违反了严格的别名规则? [复制]

    这个问题在这里已经有答案了 注意 学习严格的别名规则 请耐心等待 代码示例 t935 c include
  • 使 Loopback API Ember.js 兼容

    我正在尝试使用 Loopback 来获取与 Ember 对话的 API Ember 要求 JSON 包含在 键 中 例如对于一个帐户 account domain domain com subdomain test title test d
  • Alpine 操作系统上的 Php7 Redis 客户端

    我使用 alpine 3 5 作为基础镜像制作了一个 docker 镜像 我希望我的 php 应用程序在容器内运行以与 redis 服务器通信 但我在 Alpine 中找不到任何 php7 redis 客户端 有解决办法吗 我尝试使用pec
  • 将图像分成3*3的块

    我有一个矩阵 它的维度恰好不是 3 的倍数 或者可能是 3 的倍数 我们怎样才能将整个图像分成3 3矩阵块 可以忽略最后不属于3 3倍数的 另外 3 3矩阵可以保存在数组中 a 3 b 3 window size x size f 1 a
  • 在文本框中输入文本

    谁能告诉我为什么会这样jsFiddle http jsfiddle net 4NwZ9 不起作用 这个想法很简单 只是假设将选定的文本输入到文本框中 HTML
  • 配置 Qt Creator 以与 GDB 一起使用

    我的机器上有 GDB 和 CDB 我的 Qt 创建者正在使用 CDB 进行调试 我试图指向GDB路径 但它不起作用 如何设置 Qt Creator 使用 GDB 进行调试 确保您已将 Qt Creator 设置为 调试 构建配置 构建菜单
  • 在鼠标悬停在画布上的形状/位置(坐标)上时显示工具提示

    当鼠标悬停在画布上的某些位置时 我试图显示相应的工具提示 例如 当鼠标在画布上的坐标为 100 100 时 显示tooltip1 当鼠标位置在 200 200 时 显示tooltip2等 我已经添加了事件侦听器来检测鼠标移动并获取鼠标位置
  • 使用 Java 验证 CSV 文件

    我正在逐行读取文件 如下所示 FileReader myFile new FileReader File file BufferedReader InputFile new BufferedReader myFile Read the fi
  • DDS - 推荐哪一种 - OpenSplice 还是 CoreDX? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要 C winform 应用程序和 android 本机应用程序来使用 DDS 数据分发服务 每个人都可以是订阅者和作者 对我来说重要的是
  • Socket.io 自定义客户端 ID

    我正在使用 socket io 制作一个聊天应用程序 并且我想使用我的自定义客户端 ID 而不是默认的客户端 ID 8411473621394412707 1120516437992682114 有没有什么方法可以在连接时发送自定义标识符
  • 如何使用 ObjectMapper 在没有默认构造函数的情况下反/序列化不可变对象?

    我想使用 com fasterxml jackson databind ObjectMapper 序列化和反序列化一个不可变对象 不可变类看起来像这样 只有 3 个内部属性 getter 和构造函数 public final class I
  • Reveal JS 无法在幻灯片中滚动

    我正在使用 Reveal JS 进行演示 如果我在标签中放置更多文本 它就会隐藏在屏幕下方 但右侧没有滚动条 想知道我是否可以修复 css 以引入垂直滚动条并通过滚动使隐藏内容可见 这是要更改的CSS 我认为 reveal slides s
  • Sql Server 2008 MERGE - 获取计数的最佳方法

    我想知道你们会推荐什么作为从 Sql Server 中的 MERGE 语句获取操作计数的最佳方法 因此 即我运行一个 MERGE 它执行一些插入 一些更新和一些删除 我希望能够找出有多少插入 多少更新和多少删除 最好的方法是什么 您可以在
  • 从头开始构建一个快速的私人文章语义MySQL搜索引擎

    我正在开展一个项目 其中涉及全文 and semantic搜索网站内的文章 如果无法合并 用户可以选择任一选项 这些文章是订阅式的 只有登录后才能搜索 因此外部搜索引擎或其 API 无法访问它们 我读过有关狮身人面像的文章 http www