NEST 1.x에서 작성된 코드를 2.x로 변경하는 방법에 대한 설명서가 있습니까?변경 사항 b/w ElasticSearch 1.x 및 2.x
나는이 사이트에서 봤는데 그들이 불완전한 위치 : 내가 원하는 예를 들어
https://github.com/elastic/elasticsearch-net/blob/master/docs/2.0-breaking-changes/nest-breaking-changes.md
https://github.com/elastic/elasticsearch-net
https://www.elastic.co/blog/ga-release-of-nest-2-0-our-dot-net-client-for-elasticsearch
다음을 교체하는 방법을 알고 :
1)
given ISearchResponse<T> searchResults = ...
가 할 방법 :
searchResults.ConnectionStatus
searchResults.RequestInformation.Request
2)
client.Get<T>(s => s.Id(id));
3)
가 MatchQuery 두 번 입력 매개 변수로 fuziness를 허용하지 않습니다
new SearchDescriptor<T>()
.From(from)
.Size(pageSize)
.Query(query); //this dosen't work anymore
4 QueryContainer query
)을 감안할 때 사용 된 문자열로
5) QueryDescriptor는 말하다
6) client.Update가
를 체포되어 간 것 같다var result = client.Update<CustomerProfile>(request => request
.Id(customer.CustomerId)
.Doc(customer)
.Refresh()
);
7) client.Get이
8 client.Update과 유사한 방식으로 체포되어
) 매핑에서 다음 설정이 더 이상 작동하지 않습니다.
CreateIndexDescriptor cid = ...
cid.NumberOfReplicas(numReplicas)
.NumberOfShards(numShards)
.Settings(s => s
.Add("merge.policy.merge_factor", "10")
.Add("search.slowlog.threshold.fetch.warn", "1s")
)
.Analysis(a => a.TokenFilters etc etc
012 3,516,
편집
9) 날짜 범위 :
의 startDate와 endDate가이 날짜 시간 유형에게 있습니다
var qd = new QueryContainerDescriptor<EsActivity>();
QueryContainer qc = qd.Range(r =>
r.Field("esactivity.timestamp")
.GreaterThanOrEquals(DateMath.Anchored(startDate))
.LessThanOrEquals(DateMath.Anchored(endDate))
);
.GreaterThanOrEquals
double
매개 변수를 기대하지만, 문서 페이지에이 DateMath.Anchored(startDate)
10) 강조한다 :
highlightFields: List<string>
Action<HighlightFieldDescriptor<T>> [] tmp = highlightFields.Select(field =>
new Action<HighlightFieldDescriptor<T>>(
highlighter => highlighter.Field(field)
)
).ToArray();
sd:SearchDescriptor<..>..
sd.Highlight(h => h
.PreTags(preTag)
.PostTags(postTag)
.OnFields(tmp)
);
OnFields(tmp)
을 .Fields(f=>f.OnAll())
으로 바꿀 수 있지만 여전히 필드를 직접 지정하고 싶습니다.
우리가 이미 쿼리 개체에 강조 표시를 적용 했으므로 HighlightQuery 옵션을 사용할 수 있습니다. 이제 쿼리 호출이 2 개 있습니다.
나는 searchResults.ApiCall
는 searchResults .ConnectionStatus
을 대체
var tmp = highlightFields.Select(field =>
Tuple.Create<Field, IHighlightField>(
Field.Create(field),
new HighlightField()
)
).ToDictionary(x => x.Item1, x => x.Item2);
sd.Highlight(h => new Highlight
{
PreTags = new[] { preTag },
PostTags = new[] { postTag },
Fields = tmp
}
);
덕분에이 대답 시간을내어 많은입니다; DataRange 쿼리 및 하이라이팅과 유사한 문제가 있습니다 - 해당 질문을 – Adrian
으로 업데이트하는 중 하나의 질문이 10 개입니다. 다른 질문을 열어 볼 가치가 있습니다. 비슷한 질문을 가진 다른 사람들이 쉽게 답을 찾을 수 있기 때문입니다. –