The Problem: The search data changes every day for our service. Because of this, I have to reindex the newly pushed data to generate the tokens for semantic search. When this re-indexing is running using the ELSER model, the search on existing data also slows down due to model involvement in reindexing. How can this be avoided?
I see that you also asked this question in the community slack. In the future, please only ask in one place, so that we can avoid duplicate efforts to triage and answer your questions.
This is expected especially if both queries and reindexing are using the same model deployment and thus "fighting" for the same resource. Options to address this include:
Consider adding more ML nodes to increase overall capacity. On Elastic Cloud, ML nodes support autoscaling, which can help by adding more capacity during reindexing
from myself:
Another option (I believe) is to deploy ELSER twice. You can use one model_id for ingest, and another for search. This ensures that your search queue is not flooded with ingest requests during periods of heavy ingest, or vice-versa.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.