Syntax 不适用的umbraco-lucene语法
我正在尝试编写一个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
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语句)。我也尝试过不使用括号,但也不起作用。