私は「うまくいきません」というのは助けを求めるときには決して良いスタートではないことを知っていますが、数ヶ月間オンとオフになっています。 、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までカウントダウンノックどのように見ることができます...
を確認されていないが、あなたは、検索クエリとPHPのコードを示していただけますか? –
このような場合は、フィルタを使用する方がよいでしょう。 $ cl-> SetFilter( 'title_flt'、array(crc32( 'diablo')); –
これは素晴らしいアイデアのように思えます。 – deed02392