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)
はQueryContainer query
new SearchDescriptor<T>()
.From(from)
.Size(pageSize)
.Query(query); //this dosen't work anymore
4) MatchQueryはダブルと型パラメータとしてfuzinessを受け付けませんを考えますそれまでの文字列として
5)QueryDescriptorをはclient.Get)は
8 client.Updateと同様に逮捕されている)client.Updateが
var result = client.Update<CustomerProfile>(request => request
.Id(customer.CustomerId)
.Doc(customer)
.Refresh()
);
7を逮捕さGASP
6)を行っているようですマッピングでは、以下の設定はもう機能しません。
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
EDIT
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
のDateTimeタイプです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
それは1つの10の質問です:それは同じ質問で将来他の人のための答えを見つけることが容易になるので、他の質問を開く価値があるかもしれません。 –