弹性搜索完成建议在多领域

英斯

我正在尝试从多领域获得建议。我找不到这样的示例,所以也许这不是最好的主意,但我对您的观点很感兴趣。

映射:

POST / authors 
    { 
       “ mappings”:{ 
          “ author”:{ 
             “ properties”:{ 
                “ name”:{ 
                   “ type”:“ multi_field”,
                   “ fields”:{ 
                      “ name”:{ 
                         “ type”:“ string”,
                         “ index”:“ analyzed” 
                      },
                      “ ac”:{ 
                         “ type”:“ completion”,
                         “ index_analyzer”:“简单”,
                         “search_analyzer”:“简单”, 
                         “有效载荷”:true 
                      } 
                   }
                } 
             } 
          } 
       } 
    }

数据:


POST / authors / author / 1 
    { 
       “ name”:“ Fyodor Dostoevsky” 
    }

查询:

POST / authors / _suggest 

    { 
       “ authorsAutocomplete”:{ 
          “ text”:“ fyodor”,
          “ completion”:{ 
             “ field”:“ name.ac” 
          } 
       } 
    }

要求是:

  • get查询适用于文本“ fyodor”以及“ dostoevsky”,此示例仅适用于“ fyodor”
  • 能够过滤建议

有什么想法可以实现这些吗?

赫雄

首先,建议者在多领域中表现不佳,因此您可能希望将其放在外面。其次,要使您的姓名和名字都可以使用,在发布数据时必须选择输出/输入。

SENSE的工作代码示例:

POST authors

PUT authors/_mapping/author
{
    "properties" : {
        "name" : { "type" : "string" },
        "suggest" : { "type" : "completion"}
    }
}

POST authors/author/1
{
    "name": "Fyodor Dostoevsky",
    "suggest": {
        "input": ["Dostoevsky", "Fyodor"],
        "output": "Fyodor Dostoevsky"
    }
}

POST authors/_suggest
{
    "authorsAutocomplete": {
        "text": "d",
        "completion": {
            "field": "suggest"
        }
    }
}

DELETE authors

结果:

{
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "authorsAutocomplete": [
        {
            "text": "d",
            "offset": 0,
            "length": 1,
            "options": [
                {
                    "text": "Fyodor Dostoevsky",
                    "score": 1
                }
            ]
        }
    ]
}

过滤器不提供建议。要实现某种过滤,您可以查看有关在建议中使用上下文的博客文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章