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

时间:2009-05-12 17:12:23

标签: text indexing sphinx

假设我正在索引书籍表。他们有头衔,作者,描述等。

我想在所有字段中进行搜索,并返回包含搜索字词的图书标题。我可以进行搜索并从Sphinx返回book_id(doc_id),这样我就能自己查找它们,但是如果Sphinx只给了我标题,那么我真的很棒,所以我根本不需要点击数据库。我可以让Sphinx向我返回不同的属性,但是获取文本字段是我的意思。

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

[更新]今天发现:http://www.sphinxsearch.com/faq.html#row-storage

4 个答案:

答案 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表,您可以在该表中搜索生成索引的表,并以此方式获取您的标题。