[英]INSERT through SphinxSE
我在SphinxSearch 2.1.8上定義了實時索引(RT索引):
index rt
{
type = rt
path = /var/lib/sphinxsearch/data/rt
rt_field = url
}
然后,我使用SPHINX Storage Engine在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
根據MariaDB KB的這一評論,可能可以通過SphinxSE插入/更新/刪除rt索引,但是我不知道如何...
從理論上講,現在可以讓它代理INSERT,DELETE和其他對Sphinx的寫入,但是它最初並不是為此目的而設計的,因此更改可能很麻煩。
該評論說,理論上可以修改SphinxSE引擎的源代碼以啟用此類更新。 基本上,它將使SphinxQL連接到sphinx,並發出適當的命令。
但是如前所述,它並不是為此而設計的(例如,它在表定義中使用了SphinxAPI端口-因此需要找到另一種方式告知引擎使用SphinxQL端口)-這將很難做到。
...所以現在不可能。 但是,如果有人編寫了代碼可以做到這一點。
修改您的應用程序以使SphinxQL直接與Sphinx對話可能要容易得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.