0

我们如何使用 Lucene.Net.QueryParser 解析如下查询(where 子句)并遍历节点以 Postgres 的 to_tsquery() 输入的可接受格式重新表述查询。

q = "(cat AND hat) OR (car* AND NOT (\"exact match\") AND (field1:value1))";

我们需要改写查询的原因是因为 to_tsquery 需要 ':*' 进行通配符搜索,需要使用基于精确或非精确术语的邻近运算符 <->、<2> 等。

在遍历时,我们需要将查询改写为:

q = "(cat & hat) | (car:* & !(exact<->match) & (field1<2>value1))";
4

0 回答 0