这是我的问题:我需要将我的过滤器/查询语法(elasticsearch 1.x)翻译为elasticsearch 5.x语法。
这是我的疑问:
{
"query ": {
"filtered ": {
"query ": {
"fuzzy_like_this ": {
"like_text ": " cin ",
"max_query_terms ": 12,
"fuzziness ": 0.7
}
},
"filter ": {
"and ": {
"filters ": [{
"or ": {
"filters ": [{
"type ": {
"value ": "etude_patrimoine_architecture "
}
}]
}
}]
}
}
}
}
}
我不太了解bool的弹性5.x语法。
任何有关迁移此过滤器的帮助都将不胜感激。
答案 0 :(得分:0)
基本上,
filtered/query
部分进入bool/must
filtered/filter
部分位于bool/filter
,bool/must_not
或bool/should
,具体取决于您是否需要AND,NOT或OR行为。这样的事情应该让你开始:
{
"query": {
"bool": {
"must": [
query
],
"should": [
queryLayers
]
}
}
}
答案 1 :(得分:0)
这是最终的解决方案:
{
"query": {
"bool": {
"must": [{
"match": {
"_all": {
"query": QUERYVALUE,
"fuzziness": "AUTO"
}
}
}, {
"bool": {
"should": [{
"type": {
"value": VAL1
}
}, {
"type": {
"value": VAL2
}
}]
}
}],
"filter": {
"geo_shape": {
"geometry": {
"shape": {
"type": "envelope",
"coordinates": COORDARAY
}
}
}
}
}
}
}