elasticsearch如何运作?

时间:2014-01-23 14:35:14

标签: elasticsearch

Elasticsearch如何处理索引?我有一个名为Coordinates的字段,在名为lat的集合中有子字段lngusers。我想在这个集合中搜索,但是通过索引坐标字段。在我的MongoDB配置中,coordinate字段已经是2D索引。我怎样才能告诉ElasticSearch搜索该字段的索引?它知道坐标是一个索引吗?或者我应该通过这个脚本告诉它?

curl -XPUT "localhost:9200/_river/artist/_meta" -d'
{
  "type": "mongodb",
    "mongodb": {
      "db": "mydb", 
      "collection": "users"
    },
    "index": {
      "name": "coordin", 
      "type": "coordinates"
    }
}'

2 个答案:

答案 0 :(得分:1)

我认为这里的“索引”就像MongoDB和SQL服务器那样。在elasticsearch上下文中,它是typesdocuments的集合,更像是数据库是tablesrows的集合。默认情况下,elasticsearch中的所有字段都存储在Lucene数据结构中,可以从中有效地查询。

Elasticsearch支持索引的地理空间数据,可以从here找到文档。

答案 1 :(得分:1)

Elasticsearch通过您的索引配置工作,假设您已经配置了所有内容,并且您已准备好接收编辑/etc/elasticsearch/templates/中所需文件所需的一些文件 在我的下面示例中是log4net,我添加了我找到的地理空间配置here

{
  "log4net": {
    "template": "log4net*",
    "mappings": {
      "fluentd": {
        "_ttl": {
          "enabled": true,
          "default": "62d"
        },
        "properties": {
          "hostname": {
            "type": "string",
            "index": "not_analyzed"
          },
          "level": {
            "type": "string",
            "index": "not_analyzed"
          },
          "enviroment": {
            "type": "string",
            "index": "not_analyzed"
          },
          "site": {
            "type": "string",
            "index": "not_analyzed"
          },
          "username": {
            "type": "string",
            "index": "not_analyzed"
          },
          "logger": {
            "type": "string",
            "index": "not_analyzed"
          },
          "thread": {
            "type": "string",
            "index": "not_analyzed"
          },
          "systemname": {
            "type": "string",
            "index": "not_analyzed"
          },
          "message": {
            "type": "string",
            "index": "not_analyzed"
          },
          "location": {
            "type": "geo_point",
            "fielddata": {
              "format": "compressed",
              "precision": "1cm"
            }
          }
        }
      }
    }
  }
}