我有一个Sphinx发行版,其中给出了许多逻辑错误。当我使用插入的字符串检查返回的内容时,我有很多不同之处。因此,Sphinx在很多情况下都不会返回我插入的内容。
此外,当我插入文档1和文档2时,Sphinx有时会返回文档1中文档2的内容,反之亦然...
在生产稳定版本中这怎么可能...?
我使用Sphinx 2.2.9-id64-release
Sphinx的配置如下所示:
index RT2455
{
type = rt
path = /mnt/data001/RT2455
rt_field = Name
rt_field = Extension
rt_field = Content
rt_field = Tags
rt_attr_uint = Reference
rt_attr_uint = FileSize
rt_attr_uint = LastModified
rt_attr_uint = LastModifiedYear
rt_attr_uint = LastModifiedMonth
rt_attr_uint = LastModifiedDay
rt_attr_string = Content
rt_mem_limit = 1024M
charset_table = A..Z, a..z, 0..9, _, ;, %
ondisk_attrs = pool
}
searchd
{
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
read_timeout = 5
max_children = 30
pid_file = /var/run/searchd.pid
max_packet_size = 128M
binlog_path = /mnt/data001
}
可能是这种情况吗?
也许我应该将rt_attr_string
内容重命名为其他内容?因为,在INSERT中,我只指定一次内容(如果我两次指定,Sphinx将不接受)。因此,它会自动用相同的字符串填充rt_field
和rt_attr_string
。也许这是发生错误的地方?因为搜索会返回正确的文档,但是具有完全不同的代码段(该代码段是从rt_attr_string
内容列生成的,应该与rt_attr_field
列相同?...
我已经做了更多研究,似乎Sphinx有时会使用可搜索(索引)的rt_field
列来从中构建摘要。可能吧……这当然是不想要的行为,但这就是目前的样子