Merhaba,
elasticsearch'de filtreleme yapmaya çalışıyorum fakat ilgili kelime girince hem filtereleme hemde ilgili kelime filtreleri uyuşmuyor. karışık data getiriyor. Örnek map'i ve sorgu kodlarını paylaşıyorum. şimdiden teşekkürler.
Map
"hits": [
{
"_index": "product_search_test2",
"_type": "product",
"_id": "AWJ3ZQYjD7ORUm25R5y1",
"_score": 8.649974,
"_source": {
"partNumber": "GB-10570",
"partDescription": "SU POMPASI",
"searchKey": "GB-10570 SU POMPASI DEVIRDAIM DEVIRDAIM",
"warehouse": [
{
"code": "001",
"name": "Ana Depo",
"stock": 2797
},
{
"code": "ARZ",
"name": "Arızalı Depo",
"stock": 2
}
]
}
}
]
Sorgu
ISearchResponse<ProductSearchEM> RetVal = null;
int pageSize = 10;
page = page == 0 ? 1 : page;
RetVal = _elasticClient.Search<ProductSearchEM>(src => src
.Index(indexName).Type("product")
.From(page * pageSize)
.Size(pageSize)
.Query(q => q
.Nested(n => n.Query(cc => cc
.Bool(b => b
.Should(
mre => mre.MatchPhrasePrefix(mach => mach.Field("searchKey").Query(keyword))
).Filter(f => f.Bool(bol => bol.Must(bs =>
bs.Terms(term=>term.Field("warehouse.code").Terms(["001"]))
)))))
)).Sort(s =>
s.Field(f => f.Field("warehouse.stock")
.Order(SortOrder.Descending)
//.NestedPath("warehouse")
.NestedFilter(n =>
n.Bool(b =>
b.Must(m =>
m.Terms(t =>
t.Field("warehouse.code")
.Terms(["001"]))))))));
Toplam 0 cevap