Sphinx 通过狮身人面像插入
我在SphinxSearch 2.1.8中定义了一个实时索引(RT索引):Sphinx 通过狮身人面像插入,sphinx,mariadb,Sphinx,Mariadb,我在SphinxSearch 2.1.8中定义了一个实时索引(RT索引): index rt { type = rt path = /var/lib/sphinxsearch/data/rt rt_field = url } 然后,我使用SPHINX存储引擎在MariaDB 10.0.11中声明了一个表: CREATE TABLE `rt` ( `id` bigint(20) unsigned NOT NULL, `weight` int(11) NOT NUL
index rt
{
type = rt
path = /var/lib/sphinxsearch/data/rt
rt_field = url
}
然后,我使用SPHINX存储引擎在MariaDB 10.0.11中声明了一个表:
CREATE TABLE `rt` (
`id` bigint(20) unsigned NOT NULL,
`weight` int(11) NOT NULL,
`query` text NOT NULL,
`url` varchar(255) DEFAULT NULL,
KEY `query` (`query`(1024))
) ENGINE=SPHINX DEFAULT CHARSET=utf8 CONNECTION='sphinx://127.0.0.1:9312/rt';
是否可以通过SphinxSE表将数据插入我的RT索引?
尝试插入时,出现以下错误:
MariaDB [mydb]> INSERT INTO rt(id, url) VALUES (1, 'http://www.stackoverflow.com');
ERROR 1031 (HY000): Storage engine SPHINX of the table `mydb`.`rt` doesn't have this option
据我所知,通过SphinxSE插入/更新/删除rt索引是可能的,但我想知道如何
从理论上讲,现在可以让它代理插入、删除
还有其他写给狮身人面像的信,它最初并不是为这个设计的,
因此,这种改变可能会很麻烦
该评论称,修改SphinxSE引擎的源代码以启用此类更新是可能的。基本上,它将使SphinxQL连接到sphinx,并发出适当的命令 但正如所指出的那样,它并不是为此而设计的(例如,它在表定义中使用了一个SphinxAPI端口——因此需要找到另一种方法来告诉引擎要使用的SphinxQL端口)——这将有点困难 。。。所以现在不可能。但是,如果有人编写了这样做的代码,这是可能的
修改应用程序以将SphinxQL直接与Sphinx对话可能要容易得多 谢谢你的澄清。事实上,我的目标是使用mysql触发器更新rt索引。我必须找到另一个解决方案。理论上,我可以使用连接引擎。它代理底层mysql表,因为sphinxql索引看起来“像”一个mysql表,所以它可能工作得很好。