如何在dot cms中的pullRelated查询中编写条件值?

时间:2018-05-29 10:33:48

标签: dotcms

您好我有类似PartGroup和PartNumber的内容类型,我想代表PartNumber列值,我已经编写了如下的查询。我已经使用列名称应用了partnumber值,但它没有用,任何人都可以帮助我。

#set($ partNumbers = $ dotcontent.pullRelated(' PartGroup-PartNumber',$ {pgroupF.identifier}," PartNumber.searchableSpecifications:(+ \" Cable!_Type | belden!_735a,!_ bt3002,!_ tzc75024 \")",false,0))

由于 桑托什

1 个答案:

答案 0 :(得分:0)

您用来调用方法的语法是正确的,但看起来您查询的语法不正确。 pullRelated方法中的查询使用Lucene语法。

由于我不知道您正在搜索的数据字段的格式,因此有点难以说出您希望条件执行的操作。但是我从你的例子中猜测你正在尝试使用逗号作为" OR"运算符,以及您尝试搜索的字段是一个大文本字段,其中可能包含多个不同的值。

在Lucene中,您需要使用空格而不是逗号来表示" OR"运营商。您也不应该在查询中使用转义的双引号,但是您可能需要围绕要匹配的值的通配符。而且我不确定感叹号的用途是什么,但在Lucene中,感叹号是一个" NOT"操作

所以我猜你的查询看起来应该是这样的(但同样,它依赖于你的数据格式,所以如果没有看到一些数据的样子,这只是一个猜测):

"+PartNumber.searchableSpecifications:(*Cable_Type:belden_735a* *Cable_Type:_bt3002* *Cable_Type_tzc75024*)"

如果您使用惊叹号尝试匹配之外的任何有线电视,那么您在查询中列出的那些电缆将会是这样的:<\ n> / p>

"-PartNumber.searchableSpecifications:(*Cable_Type:belden_735a* *Cable_Type:_bt3002* *Cable_Type_tzc75024*)"

有关Lucene语法如何工作的详细信息(以及示例),请参阅dotCMS网站上的查询语法doc:https://dotcms.com/docs/latest/content-search-syntax

希望这有帮助!