1010
1111class SearchClient :
1212
13- def __init__ (self , engine ):
13+ def __init__ (self , engine , unsupported_queries ):
1414 self .engine = engine
15+ self .unsupported_queries = unsupported_queries
1516 dirname = os .path .split (os .path .abspath (__file__ ))[0 ]
1617 dirname = path .dirname (dirname )
1718 dirname = path .join (dirname , "engines" )
@@ -23,6 +24,8 @@ def __init__(self, engine):
2324 stdin = subprocess .PIPE )
2425
2526 def query (self , query , command ):
27+ if query in unsupported_queries :
28+ return None
2629 query_line = "%s\t %s\n " % (command , query )
2730 self .process .stdin .write (query_line .encode ("utf-8" ))
2831 self .process .stdin .flush ()
@@ -57,19 +60,37 @@ def read_queries(query_path):
5760WARMUP_ITER = 1
5861NUM_ITER = 3
5962
63+ def filter_non_range_queries (queries ):
64+ return [query for query in queries if 'range' not in query .tags ]
65+
66+ def get_range_queries (queries ):
67+ range_queries = set ()
68+ for query in queries :
69+ if 'range' in query .tags :
70+ range_queries .add (query .query )
71+ return range_queries
6072
6173if __name__ == "__main__" :
6274 import sys
6375 random .seed (2 )
6476 query_path = sys .argv [1 ]
6577 engines = sys .argv [2 :]
78+ range_query_enabled_engines = os .environ ['RANGE_QUERY_ENABLED_ENGINES' ].split (" " )
79+ range_query_enabled_engines = [engine .strip () for engine in range_query_enabled_engines ]
6680 queries = list (read_queries (query_path ))
81+ # non_range_queries = filter_non_range_queries(queries)
82+ range_queries = get_range_queries (queries )
6783 results = {}
6884 for command in COMMANDS :
6985 results_commands = {}
7086 for engine in engines :
7187 engine_results = []
7288 query_idx = {}
89+ if engine in range_query_enabled_engines :
90+ unsupported_queries = set ()
91+ else :
92+ unsupported_queries = range_queries
93+
7394 for query in queries :
7495 query_result = {
7596 "query" : query .query ,
@@ -81,7 +102,7 @@ def read_queries(query_path):
81102 engine_results .append (query_result )
82103 print ("======================" )
83104 print ("BENCHMARKING %s %s" % (engine , command ))
84- search_client = SearchClient (engine )
105+ search_client = SearchClient (engine , unsupported_queries )
85106 print ("--- Warming up ..." )
86107 queries_shuffled = list (queries [:])
87108 random .seed (2 )
0 commit comments