2015-07-22 85 views
1

我想通過類別搜索搜索webcontent對象。我已經定義了兩組類Liferay項目:使用Facet搜索按類別執行「邏輯和」搜索

  • 營銷:
    • AA,BB,CC,DD
  • 國家:
    • 美國,法國,德國

我想找到一個包含[AA,France]的WebContent。邏輯應該是'AA 法國'。所以我定義了一個用於加載搜索條件的JSON文件。但我發現我的JSON文件執行與「AA 法國搜索:

{ 
    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

首先它應該是'values': ['AA', 'France'] - allthough一些解析器讀取無效的JSON(有關更多信息,請參見http://json.org/)。

如果你看看MultiValueFacet.doGetFacetClause()實施,你會看到:

... 
    facetQuery.add(termQuery, BooleanClauseOccur.SHOULD); 
... 

BooleanClauseOccur.SHOULD表達邏輯。如果您需要邏輯,則必須實現您自己的Facet(在Ext插件中)。您可以將MultiValueFacet作爲藍圖,並用BooleanClauseOccur.MUST代替BooleanClauseOccur.SHOULD

如果您認爲這是針對功能請求的內容 - 您可以在Liferay issues database中創建一個。