2017-02-22 8 views
0

CloudsearchとAWS API Gatewayで問題が発生しています。私はチーズの詳細(聞かないでください;-))とCloudsearchドメインを持っていると私は、テスト検索コンソールを用いて微細なチーズを照会している限り、クエリがSimpleあるように私APIゲートウェイを経由してすることができますAPI Gateway経由のCloudsearchが結果を返さず、URLエンコーディングに問題がありますか?

q=feta&q.parser=simple&q.options={"fields":["cheeseid"]} 

そして、

q=(and cheeseid:'feta')&q.parser=structured 

をしかし、同じクエリは、APIゲートウェイを介して動作しません:それはStructuredだ場合、私はこのように、コンソール経由で同じことを行うことができます。たとえば、次のクエリ(ブラウザベースのアプリケーションを介して):

q=(and+cheeseid%3A%27feta%27)&q.parser=structured 

は、URLデコード時と全く同じですが、結果は返されません。

興味深いことにコンソールを介した生の検索結果の出力は、これを持っている:'がエンコードされていないが、私は、私は「としてこれを実装するかどうかはわかりません必要があることを私のものになります

q=(and+cheeseid%3A'feta')&q.parser=structured 

処理せずに生の文字列を渡してみましたが、同じ結果が出ました。

誰かが正しい方向で私を指すことができたら、ここで私のチーズを見つけようとしているレンガの壁に頭を叩いていると、とても感謝しています!

答えて

1

クエリのURLエンコードバージョンが正しくありません。かっこ文字()もエンコードする必要があります。これは、クエリ文字列として渡されると仮定すると、その後からエンコードされたURLは次のようになります。

q=%28and+cheeseid%3A%27feta%27%29&q.parser=structured 

問題が解決しない場合は、API Gatewayコンソールでテスト呼び出しを経由してあなたの方法をテストし、フルを投稿してくださいデバッグ出力。

+0

こんにちは、@MikeD、それはまったくそうではありませんでした、あなたはそれが何だったか知っていますか?何時間ものデバッグにもかかわらず 'q.parser'を公開しませんでした!私を色づけして、ハーフポート!私に戻って私自身の質問に答えるように思い出させてくれてありがとう!もちろん、あなたはエンコーディングについては正しくありましたが、正しくエンコードされていました:-) – annoyingmouse

関連する問題