2017-07-27 73 views
0

在獅身人面像(使用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

回答

2

那是什麼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()功能在INTIAL選擇 http://sphinxsearch.com/docs/current.html#sphinxql-select

+0

謝謝!聽起來很完美 - 我會看看:) –

+0

我需要使用'SPHINX_SNIPPETS' for mysql嗎? http://sphinxsearch.com/docs/current/sphinxse-snippets.html。我試圖這樣做:'SELECT field1,field2,SPHINX_SNIPPETS(field3,indexName,「word」)作爲片段FROM tableName'但它會引發語法錯誤。順便說一句,我認識到你的名字來自我讀過的_every_幫助文章:) –

+0

'SPHINX_SNIPPETS'是** Mysql UDF **,它的一部分* SphinxSE *(直接安裝在MySQL中的存儲引擎!)。但你最初的示例查詢是使用** SphinxQL ** - 所以是的,你需要SphinxQL'SNIPPET()'函數!它可以用來從** String Attribute構建一個片段** – barryhunter