def test_load_warns_on_js_version_mismatch(self, index): serialized_index = index.serialize() serialized_index["version"] = "1.0.0" with patch("lunr.index.logger") as mock_log: Index.load(serialized_index) mock_log.warning.assert_called_once()
def test_json_deserialization(self, index): serialized_index = index.serialize() json_serialized_index = json.dumps(serialized_index) idx = Index.load(json_serialized_index) assert idx == index
def test_js_serialized_index_can_be_loaded_and_produces_same_results(): json_path = run_node_script("mkdocs_serialization.js") with open(json_path) as fd: js_serialized_index = fd.read() index = Index.load(js_serialized_index) query_string = "plugins" results = index.search(query_string) js_results = run_node_script("mkdocs_query.js", query_string).split("\n") assert_results_match(results, js_results)
def build(self): """Builds the index, creating an instance of `lunr.Index`. This completes the indexing process and should only be called once all documents have been added to the index. """ self._calculate_average_field_lengths() self._create_field_vectors() self._create_token_set() return Index( inverted_index=self.inverted_index, field_vectors=self.field_vectors, token_set=self.token_set, fields=list(self._fields.keys()), pipeline=self.search_pipeline, )
def __init__(self, cfg): self.engine_type = cfg.get('engine', 'lunr') if self.engine_type == 'lunr': i_name = cfg.get('serialized_index', '') if (i_name == ''): log.fatal(f'serialized_index not set in {cfg.config_name}') if not os.path.exists(i_name): log.fatal(f"Can't find {i_name}") # Load our serialized LunrJS index with open(i_name) as f: src = f.read() try: serialized_index = json.loads(src) except Exception as err: log.fatal(f'error loading {i_name}, {err}') self.idx = Index.load(serialized_index) else: log.fatal(f'Unsupported engine_type "{self.engine_type}"')
def test_serialization(self): serialized_index = json.dumps(self.idx.serialize()) loaded_index = Index.load(json.loads(serialized_index)) assert self.idx.search("green") == loaded_index.search("green")