-2

我如何确保 sphinx 中的所有结果都具有特定类型而不进行数据库调用?例子:

|id|tag|name|
|1|media| movie|
|2|media| picture |
|3|text|media tech|

如果我搜索“媒体”一词,则不会返回第 3 行,因为在标签字段中它是文本而不是“媒体”,重要的是我不使用 db 调用,因为开销会很大。

4

3 回答 3

1

Do you want your index to only contain the 'media' type rows? Just adjust your WHERE clause in the SQL query

WHERE .... AND type='media'
于 2012-08-06T13:58:19.677 回答
1

如果您在 perl 中执行此操作,则可以使用正则表达式。试试这个

/\|.*?\|[^|]*media/
于 2012-08-06T14:03:18.100 回答
0

字符串属性可用于此 http://sphinxsearch.com/docs/current.html#conf-sql-attr-string

属性与结果一起返回。 http://sphinxsearch.com/docs/current.html#attributes

如果您仍然希望能够“搜索”该列,请使用 http://sphinxsearch.com/docs/current.html#conf-sql-field-string

使列既是字段又是属性。

  • 字段- 全文可搜索 - 因为它们被完全索引。
  • 属性- 可用于过滤/排序/分组并包含在结果中。
于 2012-08-08T14:39:49.370 回答