2017-07-27 13 views
0

スフィンクス(mysql接続を使用)では、どのように用語をマッチさせることができますか?スフィンクス検索リターンマッチとその周辺の文字

たとえば、行にはthis is a word in a sentenceが含まれます。

私は照会:SELECT term FROM table WHERE MATCH('"word*"')

私はis a word in a sが返さ見たいと思います。これは可能ですか?

今、私のクエリにこれをフィットする方法を把握しようと、以下の@ barryhunterの役に立つ答えを使用して

編集:のために設計されているものCALL SNIPPETS

SELECT field1,field2,SPHINX_SNIPPETS(field3,indexName, "word") as snippet FROM tableName

答えて

2

厥。それは言葉でカウントされますが、文字ではありません。

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クエリとして)スニペットを構築したい場合は、 http://sphinxsearch.com/docs/current.html#sphinxql-select

+0

はありがとうござい選択intialにSNIPPET()機能を使用することができます!完璧なサウンド - 私は一見を受けます:) –

+0

mysqlのために 'SPHINX_SNIPPETS'を使う必要がありますか? http://sphinxsearch.com/docs/current/sphinxse-snippets.html私はしようとしています: 'SELECT field1、field2、SPHINX_SNIPPETS(field3、indexName、" word ")as snippet FROM tableName'ですが、構文エラーがスローされます。ところで、私はこれまでに読んだ_every_ヘルプ記事からあなたの名前を認識しています:) –

+0

'SPHINX_SNIPPETS'は** SysinxSE *(MySQLに直接インストールされたストレージエンジン)の一部です** Mysql UDF **です。しかし、最初の例のクエリは** SphinxQL **を使用しています - だから、SphinxQLの '' SNIPPET() ''関数が必要です! **文字列属性**からスニペットを構築するために使用できます – barryhunter

関連する問題