CrafterCMS编辑蓝图展示了分类法在内容定位中的使用。使用文章的categories_o字段,我可以分配0到4个类别。该字段的Elasticsearch索引如下所示:
"categories_o" : {
"item" : [
{
"key" : "style",
"value_smv" : "Style"
},
{
"key" : "technology",
"value_smv" : "Technology"
}
]
},如何搜索包含一个或多个类别的文章?
Liferay的内置分类框架为类似的字段创建了一个Elasticsearch索引,如下所示:
"assetCategoryIds" : [ "644879", "644884", "644889", "6207544", "6207546", "6207550" ],然后,您可以使用Elasticsearch查询构造“term”来搜索属于多个(而不仅仅是一个)类别的文档:
"query": { "bool": {
"must": { "match_all": {} },
"filter": {
"bool": {
"must": [
{"terms": {"assetCategoryIds": ["644889","6207550"]}},
...我正在寻找一种在CrafterCMS中进行同样的搜索的方法。
发布于 2021-01-09 00:12:05
您可以使用相同的查询,使用字段的完整路径:
"terms": {"categories_o.item.key": [...]}发布于 2021-01-09 01:00:53
我对它进行了测试,这个查询可以工作:
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"]}}]}}}'https://stackoverflow.com/questions/65631878
复制相似问题