0

嗨,我有 PartGroup 和 PartNumber 之类的内容类型,我想过滤 PartNumber 列值,我写了一个如下所示的查询。我已经使用列名应用了零件编号值,它不起作用,任何人都可以帮助我。

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

谢谢桑托什

4

1 回答 1

0

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

由于我不知道您正在搜索的数据字段的格式,因此很难说出您想要条件做什么。但是我从您的示例中猜测您正在尝试使用逗号作为“OR”运算符,并且您尝试搜索的字段是一个大文本字段,其中可能包含多个不同的值。

在 Lucene 中,“OR”运算符需要使用空格而不是逗号。您也不应该在查询中需要转义的双引号,但您可能需要在要匹配的值周围使用通配符。而且我不确定感叹号的用途,但在 Lucene 中,感叹号是“NOT”运算符。

所以我猜你的查询应该是这样的(但同样,它取决于你的数据格式,所以没有看到一些数据是什么样的,这只是一个猜测):

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

如果您使用感叹号来尝试匹配除查询中列出的电缆之外的任何电缆,那么您的查询将如下所示:

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

有关 Lucene 语法如何工作的更多信息(以及示例),请参阅 dotCMS 站点上的查询语法文档:https ://dotcms.com/docs/latest/content-search-syntax 。

希望这可以帮助!

于 2018-05-29T17:00:03.267 回答