Syntax 不适用的umbraco-lucene语法

Syntax 不适用的umbraco-lucene语法,syntax,lucene,umbraco,Syntax,Lucene,Umbraco,我正在尝试编写一个lucene查询来检索我网站中的一些页面,因此我有以下内容: string.Format("nodeName: ({0})^7 bodyText: ({0})^6", _searchTerm) 这意味着它将搜索包含\u searchTerm变量的节点名或正文的内容 我所面临的困难是,我还希望它不包含任何将hideInNav标志设置为1的结果,因此我尝试: string.Format("nodeName: ({0})^7 bodyText: ({0})^6 +hideInNav

我正在尝试编写一个lucene查询来检索我网站中的一些页面,因此我有以下内容:

string.Format("nodeName: ({0})^7 bodyText: ({0})^6", _searchTerm)
这意味着它将搜索包含
\u searchTerm
变量的
节点名或
正文的内容

我所面临的困难是,我还希望它不包含任何将
hideInNav
标志设置为
1
的结果,因此我尝试:

string.Format("nodeName: ({0})^7 bodyText: ({0})^6 +hideInNav: NOT(1)", _searchTerm)
但是,这会引发以下错误:

Encountered " <NOT> "NOT "" at line 1, column 140.
Was expecting one of:
   "(" ...
   "*" ...
   <QUOTED> ...
   <TERM> ...
   <PREFIXTERM> ...
   <WILDTERM> ...
   "[" ...
   "{" ...
   <NUMBER> ...
在第1行第140列遇到“NOT”。
我期待的是:
"(" ...
"*" ...
...
...
...
...
"[" ...
"{" ...
...
据我所知,查询后确实有一个
),因此我很难确定这是在哪里发生的

尝试以下查询:

string.Format("nodeName: ({0})^7 bodyText: ({0})^6 !hideInNav: (1)", _searchTerm)
感叹号也可以更改为NOT:

string.Format("nodeName: ({0})^7 bodyText: ({0})^6 NOT hideInNav: (1)", _searchTerm)
有关Lucene查询语法的概述,请参阅(它不是当前版本,但我怀疑它的变化很大)

编辑:也许反转HIDEINAVE语句可以解决此问题:

string.Format(“nodeName:({0})^7 bodyText:({0})^6+hideInNav:(0)”,_searchTerm)来检查它是否为零或检查它是否为零


您可能还想下载以检查索引的内容,并查看值是如何保存的。

您好,我看到了该页面,但它并没有起到多大作用。我想我无法完成我正在尝试的操作,因为“NOT运算符不能仅用于一个术语”您尝试过该查询吗?您的查询中有更多的术语,因此在您的情况下,一个术语不适用。您好,我尝试过该查询,但不幸的是它没有返回结果。我注意到您在用于分组的搜索术语周围使用了括号。如果您创建这样的硬编码查询,会发生什么:nodeName:“testname”^6 bodyText:“testText”^7 NOT hideInNav:“1”以确保该问题不在您的格式中。您好,谢谢。我也尝试过这样做,但使用0的问题是,这有时是空的,因为Umbraco不允许我设置默认值(这就是为什么我必须尝试使用NOT语句)。我也尝试过不使用括号,但也不起作用。