, 당신이 다음과 같은 요청을 생성하는 모든
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"))
)
);
에 대한 카운트 search_type
을 지정, 이에 대한 multi_search
을 할 수
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'에 * 정확하게 * 매치 할 필요가 있습니까? –