如果你只是需要每個s1
,s2
和s3
RegionSegment文件的數量,那麼你可以做這樣一個multi_search
,指定計數search_type
所有
var multiSearchResponse = client.MultiSearch(ms => ms
// this is the default index for multi_search. Can override
// on each Search call if needed
.Index<TestMenuItem>()
// this is the default type for mulit_search. Can override
// on each search call if needed
.Type<TestMenuItem>()
// this is the default search_type. Can override on
// each search call if needed
.SearchType(SearchType.Count)
.Search<TestMenuItem>("s1", s => s
.Query(q => +q.Term(p => p.RegionSegments, "s1"))
)
.Search<TestMenuItem>("s2", s => s
.Query(q => +q.Term(p => p.RegionSegments, "s2"))
)
.Search<TestMenuItem>("s3", s => s
.Query(q => +q.Term(p => p.RegionSegments, "s3"))
)
);
這將產生以下要求
POST http://localhost:9200/testmenuitem-index/testmenuitem/_msearch?search_type=count
{}
{"query":{"bool":{"filter":[{"term":{"regionSegments":{"value":"s1"}}}]}}}
{}
{"query":{"bool":{"filter":[{"term":{"regionSegments":{"value":"s2"}}}]}}}
{}
{"query":{"bool":{"filter":[{"term":{"regionSegments":{"value":"s3"}}}]}}}
要獲得每個搜索結果的總計與以下內容類似
var s1Total = multiSearchResponse.GetResponse<TestMenuItem>("s1").Total;
不完全。首先,我需要得到一些查詢結果,然後根據這個查詢結果進行計算。 – user1541069
RegionSegments是一個像這樣的字符串's1 s2 s3'或's3 s2' – user1541069
是對RegionSegments進行分析的嗎?你需要在's1'還是's2'或's3'上完全匹配*? –