У меня есть запрос -license:"CC-BY-NC" AND -license:"CC-BY-ND 4.0 (Int)"
, который нужно передать в PrecedenceQueryParser.parse, например:
Query query = new PrecedenceQueryParser().parse(filter, '')
Но в сгенерированном запросе, как вы можете видеть, предложения типа -lincense:CC-BY-NC
, "" потеряны.
Есть ли какие-нибудь настройки для сохранения ""?
введите описание изображения здесь
===================== ОБНОВЛЕНИЕ =================== ========
Я понимаю, что, поскольку я ищу совпадение CC -BY-ND 4.0 (Int), без двойных кавычек (двойные кавычки используются только для того, чтобы фраза). Вот почему query.clauses [1] .query не имеет "" вокруг CC -BY-ND 4.0 (Int)
Теперь я делаю следующее:
def bqb = new BooleanQuery.Builder()
clauses.each { clause ->
bqb.add(clause.query, clause.prohibited ? BooleanClause.Occur.SHOULD : BooleanClause.Occur.MUST_NOT)
}
String s = bqb.build().toString()
build a BooleanQuery и объедините предложения,
s тогда будет равно license:CC-BY-ND 4.0 (Int) license:CC-BY-NC
Это определенно не то, что я хочу, мне нужно CC -BY-ND 4.0 (Int), чтобы быть заключены в двойные кавычки. Есть ли способ сделать это?
Гиббс мог бы быть решением, но я думаю, немного сложнее.