我正在考虑使用 SphinxSE 将当前的 MySQL 数据库转换为 MariaDB 5.5。我还没有找到任何关于使用 MariaDB 附带的 SphinxSE 的真正基本的“是的,你是个白痴”教程。
我从 AskMonty 了解本教程的第一部分关于如何安装插件的内容,但随后它开始进入基本用法,这就是我的大脑开始进入大脑放屁模式的地方。我理解创建特殊表的必要性,但最后给我留下了一些问题。在示例中,它说 id、weight 和 query 是必需的,并且它们需要特定的设置。但是,您可以在该表中拥有的以下附加字段不一定有意义。当 MySQL 对 Sphinx 的 searchd 进行查询并将结果返回到该表时,这个特殊的表是动态构建的,还是该表包含由 searchd 填充的大量关键字?
根据这个关于 Sphinx 的文档(以及我发现的一些有用的文章),我不太确定 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 版本中使用。任何额外的帮助将不胜感激。谢谢。