Lucene - Как настроить SimpleQueryParser для не MUST_NOT условий? - PullRequest
0 голосов
/ 03 мая 2019

Я хочу настроить SimpleQueryParser, чтобы не MUST_NOT (с префиксом -) условия поиска также запрашивались как префикс и нечеткий.

Поэтому пользователи обычно не знают, какие термины искать (поэтому нечеткий и префиксный полезны) но они знают, какие термины им не нужны.

Я сделал, как показано ниже, но я не могу найти особый случай для текста MUST_NOT.

    @Override
protected Query newDefaultQuery(String text) {
    Query query = super.newDefaultQuery(text);

   BooleanQuery.Builder mustBool = new BooleanQuery.Builder()
            .add(new BoostQuery(query, 1.5F), BooleanClause.Occur.SHOULD)
            .add(new BoostQuery(newPrefixQuery(text), 1.2F), BooleanClause.Occur.SHOULD)
            .add(new BoostQuery(super.newFuzzyQuery(text, 2), 1.1F), BooleanClause.Occur.SHOULD);

    mustBool.setMinimumNumberShouldMatch(1);

    return mustBool.build();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...