2012-03-25 4 views
1

私は「うまくいきません」というのは助けを求めるときには決して良いスタートではないことを知っていますが、数ヶ月間オンとオフになっています。 、JUSTゲームDiablo返しスフィンクスのフィールドスタートとフィールドエンドの拡張2検索が機能しない

@gametitle "^diablo$ "

不思議:

は、これまでのところ私は、少なくとも私が働いフィールド-開始/終了operatersを得ることができますが、私のようなスペース文字に固執する場合にのみ決定していますしかし:

@gametitle "^diablo$"

返し名前でディアブロを持つすべてのゲーム。今は素晴らしいです、私は明らかにこの余分なスペース文字がゲームのタイトルの適切なマッチングを適用するという事実に頼ることができます(それは"^age of empires$ "でも動作するようです)。

しかし、それが私の他のフィールドになると、私はこのフルフィールドマッチング(@console)を実際に実行したいものですが、私はそのような運を得ません。私は単に"^PlayStation$ "を試しても結果が得られません。そうしないと、"^PlayStation$"を実行すると、コンソールフィールド(PS1/2/3とポータブル)にすべての結果が表示されます。

@gametitleフィールドと@consoleフィールドの唯一の違いは、コンソールフィールドにいくつかのNULLエントリが含まれていることです。私はMySQLのIF文で文字列 'NULL'を選択することでこれを回避しようとしましたが、それは私のソースですが、喜びはありません。さらに、コンソールとゲームのタイトルフィールドは両方とも、MySQLではVARCHAR(255)です。

私は、余分なスペースについて言及したことで、誰かが何らかのa-haの瞬間を持つことを望んでいますが、私は息を止めていません!とにかく私の悲観主義の十分な、あなたの考えを楽しみにしています。

私は、私がマイナーチェンジするために拡張しているsphinxが提供するPHP APIを使用しています。 searchdインスタンス(Sphinx v1.10-beta)を照会しています。ここでは、クエリのログは、次のとおりです。

あり
[...] 0.024 sec [ext2/1/attr- 7 (0,50)] [application] @gametitle "^age of empires$" 
[...] 0.024 sec [ext2/1/attr- 1 (0,50)] [application] @gametitle "^age of empires$ " 

あなたが本当にスペースの追加は本当にあなたがそれらの両方が1を返すことを期待すべきときレコードは、7から1までカウントダウンノックどのように見ることができます...

+0

を確認されていないが、あなたは、検索クエリとPHPのコードを示していただけますか? –

+1

このような場合は、フィルタを使用する方がよいでしょう。 $ cl-> SetFilter( 'title_flt'、array(crc32( 'diablo')); –

+0

これは素晴らしいアイデアのように思えます。 – deed02392

答えて

1

私はこれがスフィンクスのバグであることはほとんど確信しています。

私は課題トラッカーに http://sphinxsearch.com/bugs/view.php?id=909

それを追加しましたが、これまでのところ、それは

+1

SVNからスフィンクスの固定版をダウンロードできます:) – barryhunter

+0

これは修正されてうれしいですが、実際のところ問題ではないと思われます。私は実際にヤロスラフの助言を取り、タイトルフィールドのCRC32を実装し、フィルタを実行することでこれを最終的に修正しました(しかし、署名されていないCRC32に関するアドバイスをいただき、ありがとうございます。私は今非常に満足しています。 – deed02392

関連する問題