appbaseio / appbaseio/reactivesearch

Validating the number of clauses in DataSearch component

Offen
#1,519 5 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @bietkul Auf GitHub ansehen
bug
Vorherrschende Sprache
JavaScript
Sterne
4.9k
Forks
478
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**React**

There's a default ElasticSearch limit of 1024 clauses within a query. Users may reach this limit when pasting a long list of values to search against within the DataSearch component. In my case it crashes ElasticSearch and returns the error "caused_by":{"type":"too_many_clauses","reason":"maxClauseCount is set to 1024"}.

It would be great if there was a way of setting a limit/validating entries once this limit is reached to prevent ElasticSearch from crashing. I'm trying to solve this by using beforeValueChange to reject the entry if it's greater than 1024. But I need to be able to reset the promise and the value the user has entered so they can start again. With the code below, the promise is rejected and the user can no longer edit the input. Any suggestions? Thanks

beforeValueChange={
(value) => {
return new Promise((resolve, reject) => {
if (withinElasticSearchMaxClauseLimit(value)) {
resolve();
} else {
// how do I clear the user entered value and reset the promise here?
reject();
}

})
}
}

function withinElasticSearchMaxClauseLimit(str) {
str = str.replace(/(^\s*)|(\s*$)/gi, "");
str = str.replace(/[ ]{2,}/gi, " ");
str = str.replace(/\n /, "\n");
return str.split(' ').length <= 1024;
}

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.