Как вычислить lucene FuzzyQuery на вершине GraphDB lucene index? - PullRequest
1 голос
/ 18 мая 2019

GraphDB поддерживает плагин FTS Lucene для создания «молекулы» RDF для эффективного индексирования текстов.Однако, если в слове, которое вы ищете, есть опечатка (missspell), Lucene не получит результат.Интересно, возможно ли реализовать FuzzyQuery на основе алгоритма Дамерау-Левенштейна поверх индекса Lucene в GraphDB для FTS.Таким образом, даже если слово написано неправильно, вы можете получить список более «закрытых» слов на основе сходства расстояния редактирования.

Это индекс, который я создал для индексирования меток NounSynset в WordNet RDF.

PREFIX wn20schema: <http://www.w3.org/2006/03/wn/wn20/schema/>
INSERT DATA {
    luc:index luc:setParam "uris" .
    luc:include luc:setParam "literals" .
    luc:moleculeSize luc:setParam "1" .
    luc:includePredicates luc:setParam "http://www.w3.org/2000/01/rdf-schema#label" .
    luc:includeEntities luc:setParam wn20schema:NounSynset.
    luc:nounIndex luc:createIndex "true".
}

При выполнении запроса

select * where {
    {?id luc:nounIndex "credict"}
    ?id luc:score ?score.  
}

Результат пуст, и я хотел бы получить хотя бы слово "credit", поскольку расстояние редактирования равно 1.

Спасибо !!!

1 Ответ

0 голосов
/ 22 июня 2019

Если вы используете ~, это должно дать вам нечеткое совпадение.

...