Text 如何从Sphinx结果返回特定字段?

Text 如何从Sphinx结果返回特定字段?,text,indexing,sphinx,Text,Indexing,Sphinx,假设我正在为一个书表编制索引。它们有标题、作者、描述等 我想搜索所有字段并返回包含我的搜索词的书籍的标题。我可以搜索并从Sphinx返回图书id(doc_id),这样我就可以自己查找它们,但如果Sphinx只给我标题,那么我就不必访问数据库了,这真是太棒了。我可以让斯芬克斯向我返回不同的属性,但我无法获得文本字段 这可能吗?如果是,你怎么做 [更新]今天发现了这一点:我讨厌这么快就扼杀这个想法,但这是不可能的。Sphinx不返回关于字段值的任何信息,甚至不返回哪些字段在查询中提供了匹配项 再详细

假设我正在为一个书表编制索引。它们有标题、作者、描述等

我想搜索所有字段并返回包含我的搜索词的书籍的标题。我可以搜索并从Sphinx返回图书id(doc_id),这样我就可以自己查找它们,但如果Sphinx只给我标题,那么我就不必访问数据库了,这真是太棒了。我可以让斯芬克斯向我返回不同的属性,但我无法获得文本字段

这可能吗?如果是,你怎么做


[更新]今天发现了这一点:

我讨厌这么快就扼杀这个想法,但这是不可能的。Sphinx不返回关于字段值的任何信息,甚至不返回哪些字段在查询中提供了匹配项


再详细说明一下。。。Sphinx通常会将所有属性值加载到内存中,这可能就是为什么可以为每个结果返回属性值的原因。可能是字段存储在不可逆编码中,因此无法转换回正常值?不过,这是一种暗箭伤人的做法。

在这方面取得了一些进展。现在,如果使用,可以将搜索的SphinxSE表连接到生成索引的表中,并以这种方式获取标题

这里有一些技巧。正如我所回答的,您可以将这些列添加到attr条目中,然后您可以从sphinx的结果中选择值


如果文本字段中有少量数据,则可以使用Sphinx字符串属性

sql_attr_string
但是,它有一些限制,如:

字符串属性可以存储附加到每个字符串的任意字符串 文件。每个值的固定大小限制为4MB。还有,搜索 将当前缓存RAM中的所有值,这是一个额外的 隐式限制

所以,在内存中存储大量数据不是一个好主意,因为所有属性都存储在RAM中