我使用以下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”是and关键字,而“ lit”是一个单词。
从解析器代码中,我看到“单词”具有与其关联的名称
valid_word = Regex(r'([a-zA-Z0-9*_+.-]|\\[!(){}\[\]^"~*?\\:])+').setName("word")
问题是,如何获取结果内容的“ word”属性。