Ejemplo n.º 1
0
        public AutoCompleteResponse SuggestCustomer(string query, int page, int pageSize)
        {
            var response = EsClient.Search <Customer>(s => s.Index("customer")
                                                      .Suggest(su =>
                                                               su.Completion("suggestions", c =>
                                                                             c.Field(t =>
                                                                                     t.EmailSuggest).Prefix(query).Fuzzy(f =>
                                                                                                                         f.Fuzziness(Fuzziness.Auto)
                                                                                                                         )
                                                                             )
                                                               )
                                                      );
            var suggestions = response.Suggest["suggestions"];

            AutoCompleteResponse autoCompleteResponse = new AutoCompleteResponse
            {
                text            = suggestions[0].Text,
                customerDetails = new List <CustomerDetails>()
            };

            foreach (var option in suggestions[0].Options)
            {
                autoCompleteResponse.customerDetails.Add(new CustomerDetails
                {
                    Email   = option.Text,
                    Details = option.Source
                });
            }

            return(autoCompleteResponse);
        }