- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在首先我已经试验了几天 sphinx,所以我是 sphinx 的新手。
我集成了 sphinx 搜索(普通),运行良好。但直到最近我才发现 RT 是一个更好的选择。
PLAIN OL' sphinx
source people
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query = SELECT id, name FROM people
sql_field_string = name
sql_query_info = SELECT * FROM people WHERE id=$id
}
index people
{
source = people
...
}
searchd
{
listen = 9312 # Port to listen on
....
}
RT sphinx
index people
{
type = rt
rt_field = name
...
}
searchd
{
listen = 9312 # Port to listen
listen = 9306:mysql41
workers = threads
...
}
现在,如果我查询类似(我正在使用 PHP 和 This Sphinx API (GitHub) )这样的...
require_once('sphinxapi.php');
$cl = new SphinxClient();
$cl->SetServer( "localhost", 9312 );
$cl->SetMatchMode( SPH_MATCH_EXTENDED );
$qq = "Mike";
$result = $cl->Query('@name "'.$qq.'"','people');
var_dump($result);
P.S - 我在创建 RT 索引后使用 phpmyadmin 在我的 mysql 中插入了一些人的名字。但 RT 索引仍然有 0 次点击。
在@barryhunter 的指导下,我考虑利用 ATTACH
,因为我不想分别对 MySQL 和 SphinxQL 执行两次查询(插入、更新、删除)。
经过一些研究,我发现了这个 Ivinco Blog post我修改了我的 .conf
到这个
新的 RT Sphinx Conf
source people
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query = SELECT id, name FROM people
sql_field_string = name
sql_query_info = SELECT * FROM people WHERE id=$id
}
index people
{
source = people
...
}
index people_rt
{
type = rt
rt_field = name
...
}
source people_attach
{
...
sql_query = select 1 from people_rt
sql_query_post = ATTACH INDEX people TO RTINDEX people_rt
}
index people_attach
{
source = people_attach
}
searchd
{
listen = 9312 # Port to listen
listen = 9306:mysql41
workers = threads
...
}
现在我在我的终端(Ubuntu)中运行了这些命令
P.S - 所有以前的索引,pids 都被删除了。
sudo indexer -c /path/to/xxx.conf people
sudo indexer -c /path/to/xxx.conf people_attach
#ERROR: index 'people_attach': sql_query: No database selected (DSN=mysql://root:***@localhost:9306/)
sudo searchd
#WARNING: index 'people_attach': preload: failed to open /var/lib/sphinxsearch/data/people_attach.sph: No such file or directory; NOT SERVING
现在迈克获得了 5 次点击。但是如果我在 mysql 中插入/更新任何内容(使用 PHPMyAdmin/PHP 脚本)RT 不会更新?
这不是 attach 的主要目的吗?
最佳答案
是的,您需要插入数据两次。 (尽管如上所述可以使用 ATTACH RT 索引,将磁盘索引转换为 RT 索引。旨在“启动”大索引,索引器可以非常有效地构建大索引。一旦构建,将索引转换为 RT,然后可以继续直接更新)
想法是应用程序可以直接更新 sphinx 索引,因此它自己可以确保索引是最新的。 (带有索引器的磁盘索引通常按计划重新创建,因此通常会滞后)
要更新 RT 索引需要使用 SphinxQL。无法使用 SphinxAPI 客户端。
可以只使用 mysqli :) 与打开数据库连接的方式相同,打开与 sphinx 的第二个连接。
关于php - Sphinx 将普通旧索引转换为实时 (RT) 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469492/
是否可以编写一个控制台 EXE 应用程序,如“hello, world!”用于 Surface RT? 我以为编译ARM就可以了,但是好像没有这样的编译选项。 我安装了 Office 2013 RT
是否可以编写一个控制台 EXE 应用程序,如“hello, world!”用于 Surface RT? 我以为编译ARM就可以了,但是好像没有这样的编译选项。 我安装了 Office 2013 RT
我尝试在 Clojure 中尽可能快地进行复数数组的乘法运算。 选择的数据结构是两个元素的映射,:re 和 :im,每个元素都是原始 double 的 Java native 数组,用于低内存开销。
目录 1. Ubuntu Pro简介 2. Real-time Ubuntu 3. 订阅Ubuntu Pro 4.
我已经实现了流转换器。请注意,这只是一个练习(为了学习 Dart)。此转换器将整数转换为字符串。我给出下面的代码,你也可以在GitHub上找到它. // Conceptually, a transfo
我正在考虑在使用 RT-PREEMPT(使其实时)修补的 Linux 内核上将 ZeroMQ 设置为消息代理。 基本上我想发布/订阅使用谷歌 Protocol Buffer 序列化的短事件。 1. E
alt-rt.jar中的HashMap有什么区别和 rt.jar。我想我看到了相当大的加速在我的一个应用程序中,解释是什么? 最好的问候 P.S.: 我发现了两个不同的 *.jar在 JDK 1.6.
我知道Surface RT版本只能运行Windows Store应用程序。那么,我可以将自己的 Windows 应用商店应用部署到 Surface RT 并通过 Visual Studio 2012
在我将 Android Studio 更新到 3.0 并按照此 instruction 迁移了我的项目之后 我得到这样的错误: * What went wrong: Execution failed
当 jaxws-rt.jar 已经可用时,我不明白在 rt.jar 中使用 jax-ws 包的“内部”实现。为什么 Sun/Oracle 会做出这样的决定,将 jax-ws 集成到 jdk 中....
介绍 RT-Thread Studio是官方出品的一款专门针对RT-Thread嵌入式开发、部署、调试、测试的集成开发环境,它基于Eclipse开源项目开发,极大的提高了嵌入式开发者的开发效率,目前
在 .NET Web 应用程序的负载测试期间监视性能计数器时,一个名为“RT 检查时间百分比”的计数器不断超过默认临界阈值 10。 为什么花费大量时间进行运行时检查是不好的? 这对我们的应用程序有何影
我正在寻找支持 UML-RT 的建模工具,但我找不到。 我已经拥有 MS Visio (2010)、Power Designer (2008) 和 Rational Rose,但似乎它们都不包含 UM
rt linux 中的客户端和服务器通信。客户端发送数据,服务器接收数据。客户端和服务器之间使用UDP进行通信。当服务器(rt linux)从客户端接收到数据时,内核应该停止正在做的事情并开始执行新到
rt linux 中的客户端和服务器通信。客户端发送数据,服务器接收数据。客户端和服务器之间使用UDP进行通信。当服务器(rt linux)从客户端接收到数据时,内核应该停止正在做的事情并开始执行新到
我正在尝试在我的应用程序中对某些帧进行双重缓冲。但是,双缓冲要求我根据我试图保留额外数据 block 的区域更改 Texture2D 大小。 为双缓冲区的每个区域请求一个新的 CreateTextur
我正在学习如何使用 RT 计时器创建周期性事件。我尝试使用这个基于 timer_create 文档示例的示例。 预期的行为是每 5 秒产生一个周期性事件,同时主执行休眠 30 秒,但我得到以下行为。
一、基本信息 MCU:STM32F103ZET6 RT-Thread:5.0.2 LVGL:8.3.11 LCD:ST7735s 编译环境:RTThread studio
我向 rt 索引添加了新字段,如何重建它?如果我做截断 rtindex 新字段不添加。我是从desc rtindex看到的。我应该停止 sphinx 服务并取消链接所有索引文件然后重新索引吗? 最佳答
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!