簡體   English   中英

通過SphinxSE插入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM