removeWordsIfNoResults=allOptional
クエリパラメータを使用すると、確かに行くには良い方法です - すべてのクエリ単語は、デフォルトでは、オブジェクトを一致させるために必要とされているので>、はが1あなたならば、まだ結果を取得するための良い方法である「オプション」にfallbackingクエリワード(またはワードの組み合わせ)は何も一致しません。
index.search(query, { removeWordsIfNoResults: 'allOptional' });
別の解決策は、常にオプション(だけでなく、フォールバックとして)としてすべてのクエリの単語を考慮することです。クエリfoo bar baz
がOPT(foo) AND OPT(bar) AND OPT(baz)
< =>foo OR bar OR baz
と解釈されるようにします。違いは、1つの一致する単語がオブジェクトを取得するのに十分であるため、このクエリは前のクエリより多くの結果を取得することです。
index.search(query, { optionalWords: query });
言われているように、エンジンに「少なくとも」少なくとも5つの結果を取得させる方法はありません。小さなフロントエンドロジックを使用することをお勧めします。removeWordsIfNoResults
またはoptionalWords
でクエリを実行します - エンジンが5個未満の結果を返す場合は、別のクエリを実行します。