我如何确保 sphinx 中的所有结果都具有特定类型而不进行数据库调用?例子:
|id|tag|name|
|1|media| movie|
|2|media| picture |
|3|text|media tech|
如果我搜索“媒体”一词,则不会返回第 3 行,因为在标签字段中它是文本而不是“媒体”,重要的是我不使用 db 调用,因为开销会很大。
我如何确保 sphinx 中的所有结果都具有特定类型而不进行数据库调用?例子:
|id|tag|name|
|1|media| movie|
|2|media| picture |
|3|text|media tech|
如果我搜索“媒体”一词,则不会返回第 3 行,因为在标签字段中它是文本而不是“媒体”,重要的是我不使用 db 调用,因为开销会很大。
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'
如果您在 perl 中执行此操作,则可以使用正则表达式。试试这个
/\|.*?\|[^|]*media/
字符串属性可用于此 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
使列既是字段又是属性。