【问题标题】:Index only some fields in ElasticSearch from mongodb仅从 mongodb 索引 ElasticSearch 中的某些字段
【发布时间】:2013-07-15 15:56:15
【问题描述】:

我正在使用 elasticsearch 0.90.2 和 elasticsearch-river-mongodb 1.7.0 从 mongodb 的 oplog 中检索数据。在我试图索引的集合中,我有数千条结构化记录,让我们将它们命名为'field1'、'field2'、'field3'...'field10'

有没有办法只索引 'field1' 和 'field2' ? 这些是字符串还是日期对象有关系吗?

谢谢

【问题讨论】:

    标签: mongodb elasticsearch


    【解决方案1】:

    我从未使用过河流插件,但我知道的一件事是您可以通过映射或模板控制字段的索引。 对于每个字段,您可以在映射或模板中将属性“索引”指定为三个不同的选项:analyzed、not_analyzed、no。这是官方文档。

    设置为 analyzed 以便在使用分析器将字段分解为标记后进行索引和搜索。 not_analyzed 表示它仍然可以搜索,但不经过任何分析过程或分解为标记。 no 表示它根本不可搜索(作为单个字段;它可能仍包含在 _all 中)。设置为 no 会禁用 include_in_all。默认为已分析。

    如果您希望您的字段仍然可搜索,请选择“not_analyzed”,否则选择“no”。 字段的类型应该无关紧要。

    这是来自官网的映射示例

    {
        "tweet" : {
            "properties" : {
                "user" : {"type" : "string", "index" : "not_analyzed"},
                "message" : {"type" : "string", "null_value" : "na"},
                "postDate" : {"type" : "date"},
                "priority" : {"type" : "integer"},
                "rank" : {"type" : "float"}
            }
        }
    }
    

    【讨论】:

    • 感谢周拓!你的回答有帮助。我创建了索引,然后创建了映射,然后在该索引上附加了 mongodb 河。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2019-01-26
    • 2023-04-09
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多