我正在尝试编写一个lucene查询来检索我网站中的某些页面,所以我有以下内容:
string.Format("nodeName: ({0})^7 bodyText: ({0})^6", _searchTerm)
这意味着它会搜索包含nodeName
变量的bodyText
或_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> ...
据我所知,查询在NOT之后确实有一个(
所以我对这个预期的位置感到难过
答案 0 :(得分:0)
尝试此查询:
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 Query语法的概述,请参阅this page(它不是当前版本,但我怀疑它发生了很大变化)
编辑:可能正在撤消hideInNave语句将修复它:
string.Format(“nodeName:({0})^ 7 bodyText:({0})^ 6 + hideInNav:(0)”,_ searchTerm)检查它是否为零或检查它是否为零。< / p>
您可能还想下载Luke来检查索引的内容并查看值的保存方式。