假设我正在索引书籍表。他们有头衔,作者,描述等。
我想在所有字段中进行搜索,并返回包含搜索字词的图书标题。我可以进行搜索并从Sphinx返回book_id(doc_id),这样我就能自己查找它们,但是如果Sphinx只给了我标题,那么我真的很棒,所以我根本不需要点击数据库。我可以让Sphinx向我返回不同的属性,但是获取文本字段是我的意思。
这可能吗?如果是这样,你怎么做?
答案 0 :(得分:3)
有一些技巧。当我回答before时,你可以在 attr 条目中添加这些列,然后你可以从sphinx的结果中选择值。
可能对你有所帮助:D
答案 1 :(得分:1)
如果您在文本字段中有少量数据,则可以使用Sphinx字符串属性。
sql_attr_string
但是,它有一些限制,如:
String属性可以存储附加到每个字符串的任意字符串 文献。每个值的固定大小限制为4 MB。另外,搜索 目前将缓存RAM中的所有值,这是一个额外的 隐含限制。
因此,将大量数据存储在其中并不是一个好主意,因为所有属性都存储在RAM中。
答案 2 :(得分:0)
讨厌如此迅速地杀死这个想法,但这是不可能的。 Sphinx不会返回有关字段值的任何信息,甚至也不会返回哪些字段与查询匹配。
详细说明...... Sphinx通常会将所有属性值加载到内存中,这可能就是为什么每次返回结果都没问题。可能是字段以不可逆的编码存储,因此无法转换回正常值?不过,那是在黑暗中刺伤的。
答案 3 :(得分:0)
在这方面取得了一些进展。现在,如果您使用SphinxSE,您可以加入SphinxSE表,您可以在该表中搜索生成索引的表,并以此方式获取您的标题。