7.4.通过 MySQL 生成片段 (摘要)
优质
小牛编辑
131浏览
2023-12-01
从版本0.9.9-rc2开始,SphinxSE提供了一个UDF函数,允许用户通过MySQL创建摘要。这个功能的作用与API调用BuildExcerprts的功能非常相似,但可以通过MySQL+SphinxSE来访问。
提供这个UDF的二进制文件叫做sphinx.so
,当安装SphinxSE本身的时候,这个文件会自动地被创建,并且安装到合适的位置。 但如果由于某种原因它没能自动安装,那就请在创建SphinxSE的目录中寻找sphinx.so
文件,并把它拷贝到你的MySQL实例的plugins目录下。然后用下面语句来注册这个UDF:
CREATE FUNCTION sphinx_snippets RETURNS STRING SONAME 'sphinx.so';
函数的名字必须是sphinx_snippets,而不能随便取名。函数的参数表必须如下:
原型:function sphinx_snippets ( document, index, words, [options] );
Documents和words这两个参数可以是字符串或者数据库表的列。Options参数(额外选项)必须这样指定:‘值’ AS 选项名
。关于支持的所有选项,可以参见API调用BuildExcerprts()。只有一个选项不被API支持而只能用于UDF,这个选项叫做'sphinx'
,用于指定searchd的位置(服务器和端口)。
使用示例:
SELECT sphinx_snippets('hello world doc', 'main', 'world', 'sphinx://192.168.1.1/' AS sphinx, true AS exact_phrase, '[b]' AS before_match, '[/b]' AS after_match) FROM documents; SELECT title, sphinx_snippets(text, 'index', 'mysql php') AS text FROM sphinx, documents WHERE query='mysql php' AND sphinx.id=documents.id;