私は、私たちのeコマースサイトの弾性検索をテストする開発環境をセットアップしました。私はクエリが非常に高速に(SQL Serverと比較して)実行されて気づいた。しかし、初めてクエリを実行すると、最終的にカタログ内の製品をレンダリングするまでにかなりの時間がかかります。最初のクエリの後、すべてがかなり高速に動作します。初めての弾性検索クエリ
私はサイトを離れ、同じことが起こった後にしばらくしてから再入力してください。
私たちのアプリケーションがNEST(高レベルのC#クライアント)を使用しており、明らかに最初のクエリのために、検索を遅らせるいくつかの操作を実行する必要があります。 これを防止する方法はありますか?アプリケーションの起動時にこの操作を行うようNESTを設定できますか?
PD:elasticsearch 5.4
UPDATE:
これがどのように私は私のNinjectModuleにElasticClientとConnectionSettingsを初期化しています:(
はpublic class ElasticRepositoryInjection : NinjectModule
{
public override void Load()
{
var connectionPool = new SingleNodeConnectionPool(new Uri(ConfigurationManager.AppSettings["elastic.server"]));
var elasticSearchConnectionSettings = new ConnectionSettings(connectionPool)
.DefaultIndex("isolution")
.EnableTcpKeepAlive(TimeSpan.FromMilliseconds(2000), TimeSpan.FromMilliseconds(2000))
.DisableDirectStreaming();
Bind<ConnectionSettings>().ToConstant(elasticSearchConnectionSettings).InSingletonScope();
var client = new ElasticClient((Kernel as StandardKernel).Get<ConnectionSettings>());
Bind<ElasticClient>().ToConstant(client).InSingletonScope();
client.Search<Domain.Isolution.ElasticSearch.Product>(s => s
.Query(q => q.MatchAll()));
}
}
私は同じ問題を抱えています。私はElasticClientとConnectionSettingsをシングルトンとして登録するためにninjectを使用しています。私のninjectモジュール内で最初のクエリを実行します。しかし、同じ問題を抱えてください! – Daniel
どのように登録していますか?編集して質問に追加できますか? –
更新!あなたは今見てみることができます! – Daniel