如何在Lucene或类似的库中索引和搜索嵌套文档/结构化数据?

时间:2013-03-24 12:32:58

标签: java json lucene

我有以下形式的结构化JSON数据:

{
    "id": 42,
    "name": "hand",
    "quantity": 2,
    "digits": [
        {
            "id": 43,
            "name": "thumb",
            "quantity": 1,
            "components": [
                {
                    "id": 44,
                    "name": "thumb",
                    "position": 0
                }
            ]
        },
        {
            "id": 45,
            "name": "fingers",
            "quantity": 4,
            "components": [
                {
                    "id": 46,
                    "name": "index",
                    "position": 1
                },
                {
                    "id": 47,
                    "name": "middle",
                    "position": 2
                },
                {
                    "id": 48,
                    "name": "ring",
                    "position": 3
                },
                {
                    "id": 49,
                    "name": "little",
                    "position": 4
                }
            ]
        }
    ]
}

我需要使用Java索引这些数据,以便之后可以进行查询以获取所需的信息。

为此,解决方案可以使用Apache Lucene,它支持自3.4版以来的嵌套文档。但是,我找不到任何教程,也没有关于如何创建嵌套文档的简单示例。

任何人都可以解释如何为结构化数据创建Lucene文档吗?

或者,是否有其他类似于Lucene的库更好地支持索引和搜索结构化数据?

1 个答案:

答案 0 :(得分:1)

在您的情况下,一个简单的解决方案是使用路径枚举(“Dewey Decimal”)。例如,前三个tems是“42”,“42.43”和“42.43.44”,而你的第四个项目是“42.45”。确保您的插槽足够大,以容纳您需要的最大数量的项目 - 例如,“042.043.044”。