在Sphinx中(使用mysql连接),如何匹配一个术语并获得,比如说匹配前后的5个字符?
例如:一行包含this is a word in a sentence
。
当我查询:SELECT term FROM table WHERE MATCH('"word*"')
我希望看到is a word in a s
返回。这可能吗?
编辑使用@ barryhunter下面的有用答案,现在试图找出如何将其纳入我的查询中:
SELECT field1,field2,SPHINX_SNIPPETS(field3,indexName, "word") as snippet FROM tableName
答案 0 :(得分:3)
那是CALL SNIPPETS
的目的。虽然它用文字计算,而不是字符。
http://sphinxsearch.com/docs/current/sphinxql-call-snippets.html
CALL SNIPPETS('this is a word in a sentance','index1','word', 2 AS around, 5 as limit_words);
会回来
...是......
中的字
添加'' as chunk_separator
不想要省略号
编辑要添加:那么如果要在搜索查询期间构建代码段(而不是单独的CALL查询),可以在初始选择中使用SNIPPET()
函数
http://sphinxsearch.com/docs/current.html#sphinxql-select