Issue
We have an existing spring boot, hibernate search, elasticsearch production system that works day to day with index results under the 10,000 default. Once a month I run a report on a local environment where the index results are sometimes between 30,000 and 40,000
On elasticsearch 5 and hibernate 5 this was accommodated by modifying index.max_result_window on the index to 100,000. Now I have moved to hibernate 6, hibernate search 6.1.7 and elasticsearch 7.16 this solution no longer works, resulting in a validation error at startup.
Caused by: org.hibernate.search.util.common.SearchException: HSEARCH000520: Hibernate Search encountered failures during bootstrap. Failures:
Hibernate ORM mapping:
type 'blahh.blahh.Blahh':
failures:
- Validation of the existing index in the Elasticsearch cluster failed. See below for details.
attribute 'max_result_window':
failures: Invalid value. Expected '10000', actual is '100000'
So I assume from the error that hibernate search sees the new value on the elasticsearch index but that it does not correspond with a 10,000 it has, I guess, on the code side. But where that is I don’t know.
The documentation seems to still suggest the solution I’m using has not changed. And I can’t find anything to suggest there is something I can set on the code to match the elasticsearch index value.
Also changing the setting after hibernate startup does not help, the max size is still 10k.
I realise that there are solutions to change the code but as it only runs once a month locally there is immeasurable resistance to change the main system for this.
Thanks
Solution
Just use custom index settings to let Hibernate Search know you expect this setting to be customized:
hibernate.search.backend.schema_management.settings_file = custom/index-settings.json
src/main/resources/custom/index-settings.json
:
{
"max_result_window": 100000
}
Answered By - yrodiere Answer Checked By - Senaida (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.