Как вы получаете смешанные результаты при поиске нескольких типов с ElasticSearch 2.x с использованием NEST? - PullRequest
0 голосов
/ 28 октября 2019

Я довольно новичок в Elastic Search и наткнулся на эту проблему. При поиске нескольких типов документов из одного и того же индекса типы добавляются в результирующий набор документов, а не сортируются по умолчанию по усиленному полю. Мои типы документов имеют одинаковые поля.

Это мой поисковый запрос:

        var response = await client.SearchAsync<ProductListResponse>(s => s
            .Type("product,productbundle")
            .Index(index)
            .From(from)
            .Size(size)
            .Query(fsq => fsq
                .FunctionScore(c => c.Query(q => q
                    .MultiMatch(m => m.Query(request.Query)
                    .Fields(f => f
                        .Field(n => n.Name, 100.0)
                        .Field(n => n.NameWithoutSpecialChars, 100.0)
                        .Field(n => n.ProductName)
                        .Field(n => n.TeaserText)
                        .Field(n => n.Description)
                        .Field(n => n.Features)
                        .Field(n => n.Modules)
                       )
                    .Type(TextQueryType.PhrasePrefix)
                   )
                ).Functions(f => f
                    .FieldValueFactor(b => b
                            .Field(p => p.IsBoosted)
                            .Modifier(FieldValueFactorModifier.Log1P))
                )
             )
           )
            .Sort(ss => ss
                .Descending(SortSpecialField.Score))
            .PostFilter(filter => filter.Bool(b => b.Must(must => allFilters)))
            .Source(sr => sr
                .Include(fi => fi
                    .Field(f => f.Name)
                    .Field(n => n.ProductName)
                    .Field(n => n.TeaserText)
                    .Field(f => f.Image)
                    .Field(f => f.Thumbnail)
                    .Field(f => f.Url)
                    .Field(f => f.Features)
                )
            )
       );

Любая помощь приветствуется.

Я бы предпочел не адаптировать тип продукта сТип дополнений к продукту.

1 Ответ

0 голосов
/ 29 октября 2019

Я могу подтвердить, что .Type () не связывается с заказом. Моя проблема заключалась в том, что увеличенное свойство не получало значение при индексации пакетов.

...