0

アプリケーションで ajax を使用して POST 検索に切り替えたので、日付範囲の使用を開始できます。ただし、何を投稿しても、インデックスに最初の 10 件の結果が返され続けるようです。実際の結果は 30k の範囲にあります。

    amplify.request.define("searchPostRequest", "ajax", {
        url: "http://leServer:9200/people/person/_search",
        type: "POST",
        dataType: 'jsonp',
        contentType: 'application/json'
    });
    self.advancedSearchPostQuery = {
        query: {
           term: {
               locationNumber:479
            }
        }
    };
    console.log(self.advancedSearchPostQuery);
    amplify.request({
        resourceId: "searchPostRequest",
        data: JSON.stringify(self.advancedSearchPostQuery),
        success: function (data) {
            console.log(data.hits.hits.length);
        }
    });
4

2 に答える 2

0

これが実際のコードである場合、問題は単純に advancedSearchPostQuery有効な JSON ではない可能性があります。

引用符を適用する必要があります:

advancedSearchPostQuery = {
    "query": {
        "term": {
            "locationNumber": 479
        }
    }
}

オブジェクトが必要かどうかはstringifyわかりませんが、amplifyJS には詳しくないので、amplifyjs がオブジェクトまたは文字列を予期しているかどうかも再確認してください。

それでも問題が解決しない場合は、コマンド ラインから curl を使用してクエリを実行したときに、クエリが正しい結果を返すかどうかを確認してください。

于 2013-01-19T00:37:31.807 に答える
0

さらにデバッグを行った後、明示的に投稿するように設定したにもかかわらず、リクエストが GET として送信されていることがわかりました。データ型を jsonp から json に移動すると、リクエストが POST として送信され、問題が解決されました。ただし、これにより IE で問題が発生し、リクエストが別のドメインに送信されるため、リクエストがまったく送信されません。

    amplify.request.define("searchPostRequest", "ajax", {
        url: "http://leServer:9200/people/person/_search",
        type: "POST",
        dataType: 'json',
        contentType: 'application/json'
    });
于 2013-01-22T13:28:32.450 に答える