首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CrafterCMS中按分类搜索

问在CrafterCMS中按分类搜索
EN

Stack Overflow用户
提问于 2021-01-08 23:29:59
回答 2查看 63关注 0票数 1

CrafterCMS编辑蓝图展示了分类法在内容定位中的使用。使用文章的categories_o字段,我可以分配0到4个类别。该字段的Elasticsearch索引如下所示:

代码语言:javascript
复制
      "categories_o" : {
        "item" : [
          {
            "key" : "style",
            "value_smv" : "Style"
          },
          {
            "key" : "technology",
            "value_smv" : "Technology"
          }
        ]
      },

如何搜索包含一个或多个类别的文章?

Liferay的内置分类框架为类似的字段创建了一个Elasticsearch索引,如下所示:

代码语言:javascript
复制
    "assetCategoryIds" : [ "644879", "644884", "644889", "6207544", "6207546", "6207550" ],

然后,您可以使用Elasticsearch查询构造“term”来搜索属于多个(而不仅仅是一个)类别的文档:

代码语言:javascript
复制
"query": { "bool": {
  "must": { "match_all": {} },
  "filter": {
    "bool": {
      "must": [
        {"terms": {"assetCategoryIds": ["644889","6207550"]}},
...

我正在寻找一种在CrafterCMS中进行同样的搜索的方法。

EN

回答 2

Stack Overflow用户

发布于 2021-01-09 00:12:05

您可以使用相同的查询,使用字段的完整路径:

代码语言:javascript
复制
"terms": {"categories_o.item.key": [...]}
票数 1
EN

Stack Overflow用户

发布于 2021-01-09 01:00:53

我对它进行了测试,这个查询可以工作:

代码语言:javascript
复制
alias jcurl='curl -H "Content-Type: application/json"'
jcurl -sXPOST "localhost:9201/sample2-preview_v1/_search?pretty" -d '
{"size":1,"query":{"bool":{"must":[
{"terms":{"categories_o.item.key":["technology","style"]}}]}}}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65631878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档