Ich habe eine MultiSearch-Abfrage wie folgt. Grundsätzlich frage ich nach Produkt- und Kategorietypen. Ich möchte diese Abfrage optional machen, ohne den gleichen Code erneut zu schreiben. Grundsätzlich möchte ich in einigen Fällen nur den Produkttyp abfragen, das heißt, es wird nicht multisearch sondern eine Suchanfrage. Wie kann ich diese Abfrage in 2 Suchabfragen aufteilen? Etwas wie unten, denke ich.Nest Multisearch Abfrage schreiben als Objektinitialisierer Syntax
return Client.MultiSearch(ms => ms
.Search<Product>("products", s => s
.Index(IndexName)
.Explain(explain)
.Query(q => q
.Bool(b => b
.Should(
sh => sh.MultiMatch(qs => qs
.Fields(d => d
.Field(Name + ".raw", NameBoost + 0.5)
.Field(Name, NameBoost)
.Type(TextQueryType.BestFields)
.Query(key))
))).From(startfrom).Size(size))
.Search<Category>("categories", s => s
.Index(IndexName)
.Explain(explain)
.Query(q => q.
Bool(b => b.
Should(sh => sh.
MultiMatch(m => m
.Fields(d => d
.Field(f => f.Name, NameBoost)
.Field(p => p.Name.Suffix("raw"), NameBoost + 0.5)).Type(TextQueryType.BestFields)
.Query(key)
)
))).From(startfrom).Size(size))
);
so etwas wie das unten. Ich denke, dass es Objektinitialisierer Syntax nach this Artikel
Client.MultiSearch (SearchProductQuery & & SearchCategoryQuery)
ist es möglich, genannt wird?
Welche Version von NEST verwenden Sie? Auf welche Version von Elasticsearch zielen Sie auch ab? –
@RussCam Ich verwende für beide Version 2.1.0 – batmaci