有没有一种方法可以检索Elasticsearch建议将输入映射到自动完成功能?

时间:2019-05-06 22:02:05

标签: elasticsearch autocomplete search-suggestion

首先,我是Elasticsearch的新手,所以我试图弄清楚如何构建智能的自动完成功能。所以我的情况是这样的:

  • 我有一个PostgreSql数据库,其中有一些房地产提供注册表,
  • 我已经构建了一项服务,该服务根据其地理位置(作为jsonb列类型)使用一些地理信息来更新这些注册表;

因此,我接下来阅读了一些Elasticsearch Completition建议的文章,以了解其工作原理,并得出结论,为引用到pgdb报价表的文档建立索引,因此我可以使用文本格式的参数创建文档,例如:

PG表(报价)

    id |             address                   | parks_around
    1  |Avenida Diógenes Ribeiro de Lima, 2811 |      2
    2  |Avenida Paulista, 1044                 |      1
    2  |Avenida Ibirapuera, 2899               |      0

然后,当我将记录同步到Elasticsearch时,我可以像这样索引我的文档:

    "mappings": {
        "offers": {
            "properties": {
                "external_id": {
                    "type": "integer"
                 },
                "address": {
                    "type": "text"
                 },
                "parks": {
                    "type": "text"
                 },
             }
        }
    }

然后,最后使用带有大量api的上下文短语为一些文档编制索引:

    {index:{}}
    {
        "external_id": 1,
        "address": "Offer in Avenida Diógenes Ribeiro de Lima",
        "parks": "Offer with parks around"
    }  
    {index:{}}
    {
        "external_id": 2,
        "address": "Offer in Avenida Paulista",
        "parks": "Offer with park around"
    }
    {index:{}}
    {
        "external_id": 3,
        "address": "Offer in Avenida Ibirapuera",
        "parks": null
    }

我的观点是:我是否必须像完整的短语一样存储我的文档,以便在用户键入时显示完成提示的建议?

有人可以帮我说说它是否离理想解决方案还很远吗?

谢谢。

0 个答案:

没有答案