ドキュメントはフィルタリングされたクエリは、2.0.0-beta1の中で推奨されていません2.3.0
であると述べています。代わりにboolクエリを使用して、クエリの場合は 句を、フィルタの場合はフィルタ句を使用します。
これは、フィルタ句の適切な使用ですか?
var result = client.Search<Post>(x => x
.Query(q => q
.Bool(b => b
.Must(m => m
.MultiMatch(mp => mp
.Query(query)
.Fields(f => f
.Fields(f1 => f1.Title, f2 => f2.Body, f3 => f3.Tags))))
.Filter(f => f
.Bool(b1 => b1
.Must(filters)))))); // or filter?
クエリがstring
とフィルタ生のJSON要求があるFunc<QueryContainerDescriptor<Post>, QueryContainer>[]
です:あなたはfiltered
クエリクエリを使用しているだろう
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "javascript",
"fields": [ "title", "body", "tags" ]
}
}
],
"filter": [
{
"bool": {
"must": [
{ "term": { "tags": { "value": "javascript" } } },
{ "term": { "tags": { "value": "ajax" } } },
{ "term": { "tags": { "value": "jquery" } } }
]
}
}
]
}
実行すると何が得られますか? – Val