我想按categoryids搜索webcontent对象。我已经定义了两组类别
我想找到一个包含[AA,France]的WebContent。逻辑应该是'AA 和法国'。所以我定义了一个JSON文件,用于加载搜索条件。但我发现我的JSON文件使用'AA 或 France'执行搜索:
{
className: 'com.liferay.portal.kernel.search.facet.MultiValueFacet',
data: {
displayStyle: 'list',
frequencyThreshold: 1,
showAssetCount: true,
values:[AA, France]
},
displayStyle: 'asset_categories',
fieldName: 'assetCategoryIds',
label: 'category',
order: 'OrderHitsDesc',
static: true,
weight: 1.3
}
有人能告诉我如何使用'和'实现逻辑吗?
答案 0 :(得分:0)
首先它应该是'values': ['AA', 'France']
- 尽管有些解析器会读取无效的JSON(有关详细信息,请参阅http://json.org/)。
如果你看一下MultiValueFacet.doGetFacetClause()
的实现,你会看到:
...
facetQuery.add(termQuery, BooleanClauseOccur.SHOULD);
...
BooleanClauseOccur.SHOULD
表示 OR 逻辑。如果您需要 AND 逻辑,则必须实现自己的Facet
(在 Ext插件中)。您可以将MultiValueFacet
作为蓝图,并将BooleanClauseOccur.SHOULD
替换为BooleanClauseOccur.MUST
。
如果您认为这是功能请求的内容 - 您可以在Liferay issues database中创建一个。