エラスティック検索を使用して自動提案機能を実装したいと考えています。nGram フィルターを使用して、複数のフィールドの部分的な単語を一致させ、期待どおりに機能させることができます。検索の出力は、必要に応じて複数のフィールドを含む完全なドキュメントを返します。今私の問題は、一致するフィールドに基づいてユーザーに自動提案を与える方法です。たとえば、5 つのフィールドがあります。
{userId:'rakesh',firstName:'Rakesh','lastName':'Goyal','mobileNo':'123-123-1234','alternativeMobileNo':'123-123-1235'}
{userId:'goyal',firstName:'Goyal','lastName':'Rakshit','mobileNo':'123-123-1236','alternativeMobileNo':'123-123-1237'}
上記の例で、ユーザーが 123 を入力した場合、123-123-1234、123-123-1235、123-123-1236、123-123-1237 (4 つの自動提案) を返します。
同様に、ユーザーが Rak と入力した場合、Rakesh、Rakshit (2 つの自動提案) を返したいと思います。
最初の例の mobileNo と alternativeMobileNo フィールドに一致が存在することを確認し、それに応じて結果を返すにはどうすればよいですか?
2 番目の例の firstName フィールドと lastName フィールドに一致が存在することを確認し、それに応じて結果を返すにはどうすればよいですか?