当前位置: 首页 > 面试题库 >

在Elasticsearch中建立索引时如何进行映射

湛联
2023-03-14
问题内容

ElasticSearch在一个网站中使用,其中我从中索引了数据MongoDB

def postToEs(self):
    """
    put data to the elasticsearch
    """
    es = Elasticsearch()
    cursor = self.getMongoData()
    for document in cursor:
        esdoc={}
        esdoc["category"] = document.get("category")
        esdoc["description"] = document.get("description")
        esdoc["title"] = document.get("title")
        esdoc["link"] = document.get("link")
        esdoc["state"] = document.get("state")
        esdoc_id = esdoc["link"]
        es.index(
            index = 'news',
            doc_type = 'allnews',
            id = esdoc_id,
            body = json.dumps(esdoc)
        )

这很好。但目前,我必须在state字段中搜索的完全匹配项elasticsearch。目前,如果我搜索其条目,New York也会给出的结果NewHampshire。我找到了此链接,并且看到了需要mapping在数据上添加的elasticsearch文档。我的问题是如何在当前情况下在数据上添加映射?还是有更好的方法呢?


问题答案:

删除现有索引

curl -XDELETE "http://hostname:9200/index/type"

删除现有的河流配置索引

curl -XDELETE "http://hostname:9200/_river"

创建映射到索引

curl -XPUT "http://hostname:9200/index/type/_mapping" -d'
{
"allnews": {
    "properties": {
        "category": {
            "type": "string"
        },
        "description": {
            "type": "string"
        },
        "link": {
            "type": "string"
        },
        "state": {
            "type": "string",
            "index" : "not_analyzed"
        },
        "title": {
            "type": "string"
        }
    }
}
}'

完成这些步骤后,将river插件配置同步mongodb到elasticsearch。

希望能帮助到你..!



 类似资料:
  • 问题内容: 这给出了错误 那么如何评估这样的查询呢? 问题答案: 我建议您查看有关提升的要求,因为当前的脚本没有太大意义。 另外,请查看elasticsearch 查询DSL的文档。它提供复合查询和简单查询,您可以将它们组合在一起。如错误所示,您不能在自定义分数查询中放入过滤器。您可以在自定义分数查询中使用过滤查询: 或使用像这样的顶级过滤器: 这两个选项的区别在于,如果您在搜索请求中也进行了构面

  • 本文向大家介绍如何在SAP中建立表索引?,包括了如何在SAP中建立表索引?的使用技巧和注意事项,需要的朋友参考一下 您需要使用事务SE11。此事务用于在表上创建索引。 在这里要牢记的一件事是将这些索引转移到生产中。您需要使用事务在开发环境中创建索引。创建它们后,您需要将它们传输到生产环境。 进行更改后,激活表格。

  • 问题内容: 我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该字段,但是如何指定要对哪些字段建立索引呢? 问题答案: 默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下选项为映射中的每个字段指定是否要将其添加到_all字段: 上面的示例禁用了name字段的默认行为,该行为不会

  • 问题内容: 我有两个具有以下映射的索引(我将简化它们的映射): 1)AccountType映射: 2)ProductType映射: 现在,我有几件事需要弄清楚: 1)首先,有一个索引是一个好主意,在我的情况下是帐户,并且产品是嵌套对象,但是在这里每次我要更新/添加新产品时,我都必须重新索引(更新)整个帐户文件? 2)我的第二个问题是:我想具有搜索功能,因此,如果用户通过在文本框中键入内容进行搜索,

  • 问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点

  • 问题内容: 在neo4j中,如何按日期建立索引并在日期范围内进行搜索。同样,对于时间,我也想在日期范围内的上午8点到上午9点之间进行搜索。 问题答案: 将日期和时间索引为整数时间戳。然后,您可以轻松地在索引中搜索其他时间戳记之间的日期。您还可以将时间戳的时间部分分别索引为另一个整数,从而可以查询给定日期之间的特定时间。 示例:要存储的日期和时间是“ 2012-02-05 8:15 AM”,因此在索