Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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,
        )
Ejemplo n.º 5
0
 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}"')
Ejemplo n.º 6
0
    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")