我正在考虑使用SphinxSE将当前的MySQL数据库转换为MariaDB 5.5。我无法找到任何真正的基本“是的,你是一个白痴”关于使用MariaDB附带的SphinxSE的教程。
我理解AskMonty的这个tutorial的第一部分关于如何安装插件,但它开始进入基本用法,这就是我的大脑开始进入脑屁模式的地方。我理解创建特殊表的必要性,但最后给我留下了一些问题。在示例中,它表示需要id,weight和query,并且需要特定设置。但是,您在该表中可以拥有的以下附加字段不一定有意义。当MySQL向Sphinx的searchd发出查询并且结果返回到此表时,这个特殊的表是动态构建的吗?或者这个表是否包含由searchd填充的大量关键字?
根据关于Sphinx的this文档(以及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版本中使用。任何额外的帮助将不胜感激。感谢。
答案 0 :(得分:3)
SphinxSE只是一个界面,可让您使用mysql查询sphinx服务器。你仍然需要单独设置sphinx。
本文介绍如何使用界面:Using SphinxSE
但请注意表格定义的这一部分:CONNECTION="sphinx://localhost:9312/test";
这就是你告诉它连接到你现有的sphinx服务器的地方。有很多文档可以解释如何设置sphinx。事实上,甚至还有一篇链接在sphinx网站上的文章,它引导您完成设置MySQL的所有工作:Sphinx & MySQL