C # Nest Elastic Search подстановочный запрос - ничего не найдено - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь настроить запрос в C #, используя подстановочный знак.Я могу получить правильные данные, возвращенные с помощью MultiMatch, но не удалось использовать с подстановочными знаками.Вот что у меня получилось:

public async Task<IEnumerable<SearchResultModel>> Search(string query)
     var queryResults = await elasticApp.SearchAsync<dynamic>(s => s
        .From(0)
        .Take(10)
        .Index(activeIndices)
        .Type(dataTypes)
        .Query(q => q
            .Bool(b => b
                .Should(m => m
                    .Wildcard(w => w
                        .Field("name")
                            .Value(w + "*")                            
                     )
                 )
             )
         )

Что касается параметра функции query при использовании MultiMatch, вы должны сделать .Query(query) в конце, но когда я попытаюсь поместить это виспользуя Wildcard, я получаю синтаксические ошибки.И согласно документам NEST ES кажется, что вы не используете .Query в конце.

В настоящее время возвращается пустой массив.

Любое понимание этого будет оценено, как и яНовое в использовании Nest и C #.

1 Ответ

0 голосов
/ 30 мая 2018

Мне удалось решить мою проблему, выполнив следующее:

.Query(q => q                    
  .Bool(b => b                     
    .Should(m => m
      .Wildcard(c => c
        .Field("name").Value(query.ToLower() + "*")
      )
    )
  )
)

query передано в качестве аргумента функции, и я хочу, чтобы звездочка принимала все после query.

...