sphinx选择返回空结果但命中确实存在

时间:2014-04-18 08:17:48

标签: mysql sql sphinx mariadb

更新:它现在正在运作。

解决方案:我关闭了sphinxsearch服务,删除了我的索引文件,重建了索引,启动了服务,现在我收到了结果。

我一直想弄清楚为什么我无法搜索并从Sphinx获得结果。

我已完成索引(已成功)

total 16261878 docs, 26084076839 bytes
total 3661.072 sec, 7124709 bytes/sec, 4441.83 docs/sec
total 131 reads, 53.673 sec, 106140.4 kb/call avg, 409.7 msec/call avg
total 25714 writes, 43.170 sec, 1231.8 kb/call avg, 1.6 msec/call avg

但是当我尝试执行搜索 select * from skoovy_prd_post search where match('five guys') limit 10

mysql -P 9306 -h127.0.0.1
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7

MySQL [(none)]> select * from skoovy_prd_post_search where match('five guys') limit 10;

我收到:

Empty set (0.00 sec)

但是对'五个人'进行一次击球,我肯定有结果:

indextool --dumphitlist skoovy_prd_post_search 'five guys' |more
Sphinx 2.0.4-release (r3135)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
dumping hitlist for index 'skoovy_prd_post_search' keyword 'five guys'...
keyword=five guys, tok=five, wordid=1018350795
doc=3327, hit=0x01000001
doc=3327, hit=0x03000004
doc=3327, hit=0x23000006
doc=3327, hit=0x23000011
doc=3327, hit=0x24000006
doc=3327, hit=0x24000010
doc=3327, hit=0x25000006
doc=3327, hit=0x25000011
doc=3327, hit=0x26000006
doc=3327, hit=0x26000010
doc=43112, hit=0x01000001
doc=43112, hit=0x03000004
doc=43112, hit=0x23000006
doc=43112, hit=0x23000011

任何人都有任何想法,建议或知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

indextool --dumphitlist转储仅针对一个关键字的匹配,即第一个,即使您传递多个关键字。请注意,默认情况下,搜索是连接的(隐式AND)。

答案 1 :(得分:0)

我关闭了sphinxsearch服务,删除了我的索引文件,重建了索引,启动了服务,现在我收到了结果。

我确实看到其他人在他们遇到过的各种其他问题上做了这些,所以我想将其添加到列表中。