0
私はかなりスフィンクスに新しいので、質問があります。SPHINX(検索):クエリでSQLを偽ったようなもの
のは、私がtv_releasesマイsphinx.confは(小部分)が含まれてい
と呼ばれるテーブルがあるとしましょう:
source tv_releases
{
type = mysql
sql_host = localhost
sql_user = ---------
sql_pass = ---------
sql_db = --------
sql_port = 3306
sql_query_pre = SET NAMES utf8
#ingore for example (delta updates).
sql_query_pre = REPLACE INTO title_counter SELECT 3, MAX(id) FROM tv_releases
sql_query = SELECT id,rel ,tv_id,total_subs FROM tv_releases\
#ignore for example (delta updates).
WHERE id<=(SELECT max_doc_id FROM title_counter WHERE counter_id=3)
sql_attr_uint = total_subs
sql_attr_uint = tv_id
}
インデックスは罰金、また、照会しているが。今
sphinxapi(PHP)(部分):
$sp = new SphinxClient();
---...
$sp->SetMatchMode(SPH_MATCH_ALL);
$sp->SetArrayResult(true);
$sp->SetLimits (0, 100);
$sp->SetSortMode (SPH_SORT_EXTENDED, "@relevance DESC, ....more options");
$results = $sp->Query('SEARCHTERM', 'tv_releases');
今私の質問:
はのは、私は次のリリース(表中RELと呼ばれる)を持っているとしましょう。
rel 1 : Name s01e02 Format-extradata
rel 2 : Name s01e03 Format-extradata
rel 3 : Name s02e05 Format-extradata
rel 4 : Name s02e06 Format-extradata
rel 5 : Name s03e06 Format-extradata
私SEARCHTERMは私が(関連性順)(REL)
が名s01eを含むすべてのリリースで始まりますマッチングリリースすることを望む "名S01"
です* *
問題は、これはしません。 sqlの単純な '名前s01%'はそれを行いますが、スフィンクスの全体のポイントはスピードです。
誰かが、スフィンクスで必要な(検索)結果をどのように達成するための解決策を持っていますか?
乾杯
どうもありがとう!私は見て、うまくいけばそれはいくつかのクエリの問題を解決します。 –