Мы используем бета-версию Lucene.net - Lucene.net 48. Мы хотим предоставить поддержку для not like
с использованием объекта запроса lucene
. Мы используем класс WildcardQuery
для поддержки диких карт и с помощью boolean clause как «BooleanClause.Occur.MUST_NOT».Предложение MUST_NOT не работает с WildcardQuery в версии Lucene.net 48 и поддерживает предложение «Is Null» и «Is not Null»
Это генерирующий запрос ->: "-company:lucene*"
.
Он имеет знак «-» перед запросом, но он не возвращает данные, где компания не похожа на lucene*
. В идеале, он должен вернуть 'эластичным', 'MongoDB' и т.д.
WildcardQuery qfWildcard = new WildcardQuery(new Term("company","lucene*"));
BooleanQuery bq = new BooleanQuery();
bq.Add(qfWildcard, BooleanClause.Occur.MUST_NOT);
На другом пути, WildcardQuery
с MUST
пункт работает.
Запрос ->: "+company:lucene*"
.
Он имеет знак «+» перед запросом и возвращает данные, где компания «lucene *». Он возвращается «Lucene», «Lucene.Net» и т.д.
WildcardQuery qfWildcard = new WildcardQuery(new Term("company","lucene*"));
BooleanQuery bq= new BooleanQuery();
bq.Add(qfWildcard, BooleanClause.Occur.MUST);
Пожалуйста, помогите мне, если кто-нибудь знает о решении с использованием WildcardQuery
класса или любого другого класса или какой-либо альтернативный способ решения этой проблемы.
Пожалуйста, дайте мне знать, если есть способ поддержать - 'Is Null' and 'Is Not Null'
статья.
«Нуль» и «Не является нулевым», может поддерживаться путем хранения всех полей в индексном документе. Но, я ищу поле синтаксиса/api, существует в документе или нет. Если какое-либо поле не существует в индексированном документе, это означает, что оно равно «null». И, если поле существует в документе с индексированным документом, оно «не равно нулю». Не найдено ни одного api/класса в версии lucene.net 48. –