Как иметь синонимы в Lucene.Net - PullRequest
0 голосов
/ 10 октября 2008

Мне нужен lucene для поиска синонимов, а также фактического ключевого слова. то есть, если я ищу "CI", я хочу, чтобы он искал CI ИЛИ "продолжает интеграцию". в настоящее время я ищу ключевые слова, для которых у меня есть синонимы, и заменяю их версией «ИЛИ-ed», но я подозреваю, что должен быть лучший способ сделать это. Мой метод не будет работать для сложных запросов, где у вас есть что-то вроде «x И y ИЛИ НЕ z».

Ответы [ 2 ]

2 голосов
/ 21 октября 2008

Это почти то, как я планировал реализовать эту функцию. Я планировал создать свою собственную версию этого, но затем я наткнулся на этот сайт WordNet.Net , который, кажется, пытается решить проблему построения синонимов. В Lucene.Net есть расширение wordnet, которое переписывает запрос, поэтому я предполагаю, что это действительно стандартный способ обработки этого.

0 голосов
/ 07 ноября 2008

По крайней мере в Java-версии Lucene вы могли бы написать себе рекурсивную функцию, которая просматривает объекты Query BooleanQuery, которые будет создавать QueryParser; каждый раз, когда он находит TermQuery, он может заменить его на BooleanQuery, который ИЛИ является исходным термином новым термином, который вы хотите добавить в запрос.

...