我想使用弹性搜索实现自动建议功能。我可以使用 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 字段中存在匹配并相应地返回结果?
对于第二个示例,我如何知道 firstName 和 lastName 字段中存在匹配并相应地返回结果?