Я использую следующий код pyparser для разбора запросов lucene: https://github.com/pyparsing/pyparsing/blob/master/examples/lucene_grammar.py
Ввод:
result = expression.parseString("lit AND field:value", parseAll=True)
print(result.dump())
вывод
[['lit', 'AND', ['field', ':', 'value']]]
[0]:
['lit', 'AND', ['field', ':', 'value']]
[0]:
lit
[1]:
AND
[2]:
['field', ':', 'value']
- field: 'field'
Теперь мне бы хотелось узнать, что «И» - это ключевое слово «and», а «Горит» - это слово.
Из кода синтаксического анализатора я вижу, что «word» имеет имя, связанное с ним
valid_word = Regex(r'([a-zA-Z0-9*_+.-]|\\[!(){}\[\]^"~*?\\:])+').setName("word")
Вопрос в том, как получить свойство "word" содержимого результата.