gpt4 book ai didi

php - 使用 MariaDB 的 SphinxSE 基本语法问题

转载 作者:行者123 更新时间:2023-11-29 06:06:18 25 4
gpt4 key购买 nike

我正在考虑使用 SphinxSE 将当前的 MySQL 数据库转换为 MariaDB 5.5。我还没有找到任何关于使用 MariaDB 附带的 SphinxSE 的真正基本的“是的,你是个白痴”教程。

我理解了这个tutorial的第一部分从 AskMonty 那里了解如何安装插件,但随后它开始进入基本用法,这就是我的大脑开始进入脑放屁模式的地方。我理解创建特殊表格的必要性,但最后给我留下了一些问题。在示例中,它表示 id、weight 和 query 是必需的,并且它们需要特定的设置。但是,该表中的以下附加字段不一定有意义。这个特殊的表是当 MySQL 向 Sphinx 的 searchd 进行查询并将结果返回到该表时动态构建的,还是该表包含由 searchd 填充的无数关键字?

根据this关于 Sphinx 的文档(其中一些 articles 我发现是 helpful )我不太确定 SphinxSE “照顾”了什么以及我仍然需要设置什么。我认为我仍然需要在 sphinx.conf 文件中设置索引?或者它们是否以某种方式通过查询传递的属性设置在所需的特殊表中?

现在您已经知道我有多困惑了,这基本上就是我需要帮助的内容。假设我刚刚成功安装了 MariaDB,并且安装了其中包含的 SphinxSE 插件。在我想象的数据库中,我有 3 个表,我想使用 Sphinx 的全文搜索功能。

--
-- Table structure for table `page_articles`
--

CREATE TABLE IF NOT EXISTS `page_articles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page_id` int(11) NOT NULL,
`body` longtext NOT NULL,
PRIMARY KEY (`id`),
KEY `page_id` (`page_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `page_comments`
--

CREATE TABLE IF NOT EXISTS `page_comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`comment` text NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `page_content`
--

CREATE TABLE IF NOT EXISTS `page_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`content` longtext NOT NULL,
`meta_keywords` text NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `content` (`content`,`meta_keywords`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

从现在起我该怎么做才能正确设置我需要的索引?就像我说的,我读了几篇文章,但对于如何选择字段进行索引并不太清楚,或者如果您只选择 MySQL 全文索引,而该索引会为您选择字段?正确设置一些索引后,我将如何开始使用一些搜索查询来从这些表中提取数据?我理解普通 MySQL 全文搜索的语法(SELECT ... FROM table MATCH(blah_index) AGAINST (keywords)),但我不知道它如何或是否仍在 SphinxSE 版本中使用。任何额外的帮助将不胜感激。谢谢。

最佳答案

SphinxSE 只是一个允许您使用 mysql 查询 sphinx 服务器的接口(interface)。您仍然需要单独设置 sphinx。

本文展示了如何使用该界面:Using SphinxSE

但是请注意表定义的这部分:CONNECTION="sphinx://localhost:9312/test";

您可以在此处告诉它连接到现有的 sphinx 服务器。有很多文档解释了如何设置 sphinx。事实上,sphinx 网站上什至有一篇文章链接,可引导您完成所有设置以与 MySQL 配合使用: Sphinx & MySQL

关于php - 使用 MariaDB 的 SphinxSE 基本语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com