Elasticsearch - 如何搜索URL?

时间:2016-11-25 14:01:17

标签: url search elasticsearch

当我将这样的数据存储到Elasticsearch(v 2.3,在AWS中)时,我遇到了问题:

{
  data: {
    url: 'https://www.mydomain.tld',
    someOtherField: 'value',
  }
}

索引映射:

{
  "mappings": {
    "nodes": {
      "properties": {
        "data": {
          "properties": {
            "url": {
              "type": "string",
              "index": "not_analyzed"
            }
           }
         }
       }
     }
   }
}

我无论如何都找不到,我怎样才能搜索如下的查询:

http:https:http://https://等等......

长话短说我需要使用协议搜索网址 - 确切的部分匹配。 因为至少冒号是一个特殊标记,搜索不会返回相关结果,即使字段未被分析。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

对我来说,目前最好的通配符是这样的。 即使我知道它是缓慢的解决方案,它也是唯一合适的:

{
  query: {
    "wildcard" : { "data.url" : "https://foo*" }
  }
}

前提是要对领域进行分析。