Skip to content

Commit 83467c0

Browse files
committed
fix #527 Analyze() should favor POST over GET
1 parent ceb0e92 commit 83467c0

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

Diff for: src/Nest/DSL/AnalyzeDescriptor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public partial class AnalyzeDescriptor :
2020
ElasticsearchPathInfo<AnalyzeRequestParameters> IPathInfo<AnalyzeRequestParameters>.ToPathInfo(IConnectionSettingsValues settings)
2121
{
2222
var pathInfo = base.ToPathInfo<AnalyzeRequestParameters>(settings, this._QueryString);
23-
pathInfo.HttpMethod = PathInfoHttpMethod.GET;
23+
pathInfo.HttpMethod = PathInfoHttpMethod.POST;
2424

2525
return pathInfo;
2626
}

Diff for: src/Nest/ElasticClient-Analyze.cs

+14-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ public IAnalyzeResponse Analyze(Func<AnalyzeDescriptor, AnalyzeDescriptor> analy
1111
{
1212
return this.Dispatch<AnalyzeDescriptor, AnalyzeRequestParameters, AnalyzeResponse>(
1313
analyzeSelector,
14-
(p, d) => this.RawDispatch.IndicesAnalyzeDispatch<AnalyzeResponse>(p, d)
14+
(p, d) =>
15+
{
16+
var text = d._QueryString.GetQueryStringValue<string>("text");
17+
d._QueryString.RemoveQueryString("text");
18+
text.ThrowIfNullOrEmpty("No text specified to analyze");
19+
return this.RawDispatch.IndicesAnalyzeDispatch<AnalyzeResponse>(p, text);
20+
}
1521
);
1622
}
1723

@@ -20,7 +26,13 @@ public Task<IAnalyzeResponse> AnalyzeAsync(Func<AnalyzeDescriptor, AnalyzeDescri
2026
{
2127
return this.DispatchAsync<AnalyzeDescriptor, AnalyzeRequestParameters, AnalyzeResponse, IAnalyzeResponse>(
2228
analyzeSelector,
23-
(p, d) => this.RawDispatch.IndicesAnalyzeDispatchAsync<AnalyzeResponse>(p, d)
29+
(p, d) =>
30+
{
31+
var text = d._QueryString.GetQueryStringValue<string>("text");
32+
d._QueryString.RemoveQueryString("text");
33+
text.ThrowIfNullOrEmpty("No text specified to analyze");
34+
return this.RawDispatch.IndicesAnalyzeDispatchAsync<AnalyzeResponse>(p, text);
35+
}
2436
);
2537
}
2638
}

Diff for: src/Tests/Nest.Tests.Unit/BigBadUrlUnitTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ private class OtherDoc
4343
public void TestAllTheUrls()
4444
{
4545
Do("POST", "/_aliases", c => c.Alias(a => a));
46-
Do("GET", "/_analyze", c => c.Analyze(a => a));
47-
Do("GET", "/myindex/_analyze", c => c.Analyze(a => a.Index("myindex")));
46+
Do("POST", "/_analyze", c => c.Analyze(a => a.Text("blah")));
47+
Do("POST", "/myindex/_analyze", c => c.Analyze(a => a.Index("myindex").Text("blah")));
4848
Do("POST", "/myindex/_bulk", c => c.Bulk(b => b.FixedPath("myindex").Index<Doc>(ib => ib.Object(new Doc { Id = "1" }))));
4949
Do("POST", "/myindex/mytype/_bulk", c => c.Bulk(b => b.FixedPath("myindex", "mytype").Index<Doc>(ib => ib.Object(new Doc { Id = "1" }))));
5050
Do("POST", "/myindex/_bulk", c => c.Bulk(b => b.FixedPath("myindex").Index<Doc>(ib => ib.Object(new Doc { Id = "1" }))));

0 commit comments

Comments
 (0)