@@ -3,7 +3,7 @@ mod utils;
33
44use criterion:: { criterion_group, criterion_main} ;
55use milli:: update:: Settings ;
6- use utils:: Conf ;
6+ use utils:: { IndexConf , IndexSettingsConf , SearchBenchConf } ;
77
88#[ global_allocator]
99static ALLOC : mimalloc:: MiMalloc = mimalloc:: MiMalloc ;
@@ -29,93 +29,89 @@ fn base_conf(builder: &mut Settings) {
2929 builder. set_sortable_fields ( sortable_fields) ;
3030}
3131
32- #[ rustfmt:: skip]
33- const BASE_CONF : Conf = Conf {
34- dataset : datasets_paths:: SMOL_ALL_COUNTRIES ,
35- dataset_format : "jsonl" ,
36- queries : & [
37- "" ,
38- ] ,
39- configure : base_conf,
40- primary_key : Some ( "geonameid" ) ,
41- ..Conf :: BASE
42- } ;
43-
4432fn bench_geo ( c : & mut criterion:: Criterion ) {
45- #[ rustfmt:: skip]
46- let confs = & [
47- // A basic placeholder with no geo
48- utils:: Conf {
49- group_name : "placeholder with no geo" ,
50- ..BASE_CONF
51- } ,
52- // Medium aglomeration: probably the most common usecase
53- utils:: Conf {
54- group_name : "asc sort from Lille" ,
55- sort : Some ( vec ! [ "_geoPoint(50.62999333378238, 3.086269263384099):asc" ] ) ,
56- ..BASE_CONF
57- } ,
58- utils:: Conf {
59- group_name : "desc sort from Lille" ,
60- sort : Some ( vec ! [ "_geoPoint(50.62999333378238, 3.086269263384099):desc" ] ) ,
61- ..BASE_CONF
62- } ,
63- // Big agglomeration: a lot of documents close to our point
64- utils:: Conf {
65- group_name : "asc sort from Tokyo" ,
66- sort : Some ( vec ! [ "_geoPoint(35.749512532692144, 139.61664952543356):asc" ] ) ,
67- ..BASE_CONF
68- } ,
69- utils:: Conf {
70- group_name : "desc sort from Tokyo" ,
71- sort : Some ( vec ! [ "_geoPoint(35.749512532692144, 139.61664952543356):desc" ] ) ,
72- ..BASE_CONF
73- } ,
74- // The furthest point from any civilization
75- utils:: Conf {
76- group_name : "asc sort from Point Nemo" ,
77- sort : Some ( vec ! [ "_geoPoint(-48.87561645055408, -123.39275749319793):asc" ] ) ,
78- ..BASE_CONF
79- } ,
80- utils:: Conf {
81- group_name : "desc sort from Point Nemo" ,
82- sort : Some ( vec ! [ "_geoPoint(-48.87561645055408, -123.39275749319793):desc" ] ) ,
83- ..BASE_CONF
84- } ,
85- // Filters
86- utils:: Conf {
87- group_name : "filter of 100km from Lille" ,
88- filter : Some ( "_geoRadius(50.62999333378238, 3.086269263384099, 100000)" ) ,
89- ..BASE_CONF
90- } ,
91- utils:: Conf {
92- group_name : "filter of 1km from Lille" ,
93- filter : Some ( "_geoRadius(50.62999333378238, 3.086269263384099, 1000)" ) ,
94- ..BASE_CONF
95- } ,
96- utils:: Conf {
97- group_name : "filter of 100km from Tokyo" ,
98- filter : Some ( "_geoRadius(35.749512532692144, 139.61664952543356, 100000)" ) ,
99- ..BASE_CONF
100- } ,
101- utils:: Conf {
102- group_name : "filter of 1km from Tokyo" ,
103- filter : Some ( "_geoRadius(35.749512532692144, 139.61664952543356, 1000)" ) ,
104- ..BASE_CONF
105- } ,
106- utils:: Conf {
107- group_name : "filter of 100km from Point Nemo" ,
108- filter : Some ( "_geoRadius(-48.87561645055408, -123.39275749319793, 100000)" ) ,
109- ..BASE_CONF
110- } ,
111- utils:: Conf {
112- group_name : "filter of 1km from Point Nemo" ,
113- filter : Some ( "_geoRadius(-48.87561645055408, -123.39275749319793, 1000)" ) ,
114- ..BASE_CONF
115- } ,
116- ] ;
33+ let index_conf = IndexConf {
34+ dataset : datasets_paths:: SMOL_ALL_COUNTRIES ,
35+ dataset_format : "jsonl" ,
36+ primary_key : Some ( "geonameid" ) ,
37+ ..IndexConf :: BASE
38+ } ;
39+ let base_index_settings_conf =
40+ IndexSettingsConf { configure : base_conf, ..IndexSettingsConf :: BASE } ;
41+
42+ let confs = vec ! [ (
43+ base_index_settings_conf,
44+ vec![
45+ // A basic placeholder with no geo
46+ SearchBenchConf { group_name: "placeholder with no geo" , ..SearchBenchConf :: BASE } ,
47+ // Medium aglomeration: probably the most common usecase
48+ SearchBenchConf {
49+ group_name: "asc sort from Lille" ,
50+ sort: Some ( vec![ "_geoPoint(50.62999333378238, 3.086269263384099):asc" ] ) ,
51+ ..SearchBenchConf :: BASE
52+ } ,
53+ SearchBenchConf {
54+ group_name: "desc sort from Lille" ,
55+ sort: Some ( vec![ "_geoPoint(50.62999333378238, 3.086269263384099):desc" ] ) ,
56+ ..SearchBenchConf :: BASE
57+ } ,
58+ // Big agglomeration: a lot of documents close to our point
59+ SearchBenchConf {
60+ group_name: "asc sort from Tokyo" ,
61+ sort: Some ( vec![ "_geoPoint(35.749512532692144, 139.61664952543356):asc" ] ) ,
62+ ..SearchBenchConf :: BASE
63+ } ,
64+ SearchBenchConf {
65+ group_name: "desc sort from Tokyo" ,
66+ sort: Some ( vec![ "_geoPoint(35.749512532692144, 139.61664952543356):desc" ] ) ,
67+ ..SearchBenchConf :: BASE
68+ } ,
69+ // The furthest point from any civilization
70+ SearchBenchConf {
71+ group_name: "asc sort from Point Nemo" ,
72+ sort: Some ( vec![ "_geoPoint(-48.87561645055408, -123.39275749319793):asc" ] ) ,
73+ ..SearchBenchConf :: BASE
74+ } ,
75+ SearchBenchConf {
76+ group_name: "desc sort from Point Nemo" ,
77+ sort: Some ( vec![ "_geoPoint(-48.87561645055408, -123.39275749319793):desc" ] ) ,
78+ ..SearchBenchConf :: BASE
79+ } ,
80+ // Filters
81+ SearchBenchConf {
82+ group_name: "filter of 100km from Lille" ,
83+ filter: Some ( "_geoRadius(50.62999333378238, 3.086269263384099, 100000)" ) ,
84+ ..SearchBenchConf :: BASE
85+ } ,
86+ SearchBenchConf {
87+ group_name: "filter of 1km from Lille" ,
88+ filter: Some ( "_geoRadius(50.62999333378238, 3.086269263384099, 1000)" ) ,
89+ ..SearchBenchConf :: BASE
90+ } ,
91+ SearchBenchConf {
92+ group_name: "filter of 100km from Tokyo" ,
93+ filter: Some ( "_geoRadius(35.749512532692144, 139.61664952543356, 100000)" ) ,
94+ ..SearchBenchConf :: BASE
95+ } ,
96+ SearchBenchConf {
97+ group_name: "filter of 1km from Tokyo" ,
98+ filter: Some ( "_geoRadius(35.749512532692144, 139.61664952543356, 1000)" ) ,
99+ ..SearchBenchConf :: BASE
100+ } ,
101+ SearchBenchConf {
102+ group_name: "filter of 100km from Point Nemo" ,
103+ filter: Some ( "_geoRadius(-48.87561645055408, -123.39275749319793, 100000)" ) ,
104+ ..SearchBenchConf :: BASE
105+ } ,
106+ SearchBenchConf {
107+ group_name: "filter of 1km from Point Nemo" ,
108+ filter: Some ( "_geoRadius(-48.87561645055408, -123.39275749319793, 1000)" ) ,
109+ ..SearchBenchConf :: BASE
110+ } ,
111+ ] ,
112+ ) ] ;
117113
118- utils:: run_benches ( c, confs) ;
114+ utils:: run_benches ( index_conf , c, & confs) ;
119115}
120116
121117criterion_group ! ( benches, bench_geo) ;
0 commit comments