我即将使用NEST客户端设置ElasticSearch的建议搜索。理想情况下,我将从输入的第二个字符开始匹配。但是,我第一次呼叫客户端需要600毫秒。每次后续通话都更像是20ms。有没有办法缓存或准备NEST客户端?
我已阅读此帖:Elasticsearch and .NET
我还读过,我可以创建一个新客户端,也可以使用相同的客户端实例,但不会产生任何影响。
我只是想在调用之前让客户端准备好使用,这样用户就不会等待客户端验证自己。
目前,只要用户点击网站,我就会与客户建立连接,然后在会话中保存客户端引用。但是,即使我已经建立了连接,第一次搜索仍然很慢。有没有办法预加载/缓存连接,以便在页面加载期间发生延迟?
答案 0 :(得分:3)
构建的第一个命中缓存是每个AppDomain。所以你不需要缓存客户端本身。在第一次点击后,您要实例化的每个客户端都将是warm
。
我已经打开了工作票,因此您可以在应用程序启动时启动预热过程,这样您就不会因为预热成本而对系统的第一个用户造成不利影响。
https://github.com/elasticsearch/elasticsearch-net/issues/742