2012-03-06 3 views
0

私は、sphinx文書を照会するためにNodejと石灰岩を試しています。しかし、それはNodejsと石灰石で照会するとSphinxが一致を返さない

var limestone = require("limestone").SphinxClient(); 
limestone.connect("192.168.1.113:3312", function(err) { 
    if (!err) { 

     limestone.query({query: "test", maxmatches:1, indexes:"phoneindex"}, function(err, answer){ 
      if (!err) { 
       console.log("Extended search for 'test' yielded " + answer.match_count + " results: " + JSON.stringify(answer)); 
       limestone.disconnect(); 
      }else{ 
       console.log("Connected ERR: "+err); 
      } 
     }); 
    } 
}); 

出力次のように、

Extended search for 'test' yielded 0 results: {"status":0,"num_fields":2,"fields":[{"name":"name"},{"name":"phone"}],"attributes":[],"matches":[],"num_attrs":0,"match_count":0,"id64":0,"total":0,"total_found":0,"msecs":0,"words_count":1,"words":{"test":{"docs":0,"hits":0}}} 

phoneindexは4つの値がありますが、上記の結果では一致し、スフィンクスの属性とフィールドのみ

マイファイルの内容を次のように返しています空です。 助けてください。

答えて

0

最後に問題が発生しました。

インデックスにワイルドカードが有効になっていません。しかし、limestone.jsは "test"という単語を検索しています。だからnode.js &石灰岩は私には何の結果ももたらさない。だから私は (適切な方法ではない)query["query"] = "";行番号を追加:limestone.jsの284。今は私のためにうまくいきます。偉大なモジュールlimestone

1

なぜあなたは

maxmatches:1 

を指定するのですか?確かにそれが問題を引き起こすでしょう。

そうでなければ、ノード/石灰岩の外でクエリを試してみましたか?たとえば、 'search'コマンドラインツールを使用します。

インデックスが正しく構築されていますか。 'indextool --dumpheader'は有効なデータを表示していますか?

sphinxインストールのapi /フォルダでtest.pl/.php/.pyを使用することはどうですか?

もう1つの領域チェックは、スフィンクスクエリログです。 (有効にしている場合)

...これらのツールを使用すると、原因を絞り込むのに役立ちます。

+0

ため

おかげで私は私のスフィンクスで15個のインデックスを持っています。そこで、私は石灰石のクエリを次のように変更しました: limestone.query({query: "test"、indexes: "weddingpics_new"}、function(err、answer){ 上記のクエリでは、私はindextoolを実行しました--dumpheaderは両方のインデックスに大きな違いはありません(phoneindex and weddingpics_new) – Raja

+1

phoneindexで 'test'にactully一致するものは何もありません---別のクエリを試してください:)また、--dumphitlist – barryhunter

関連する問題