2017-02-04 1 views
0

URLをフィールドとしてElasticsearchに保存します。しかし、サブドメインがurlのドキュメントのみをフィルタリングしたいと思います。サブドメインを持つURLのみをフィルタリングするElasticsearchの構築方法は?

たとえば、 Elasticsearchクエリで、このことは可能です

は、私は私の検索結果が

http://any-subdomain.example.com 

持つようにしたいしかし、私は結果が

https://www.example.com 

を持ってしたくないですか?

+0

この答えは役立つかもしれないより多くの情報のためthe docを確認することができます。http://stackoverflow.com/questions/34887458/elasticsearch-query-string-with-wildcards/34986008 #34986008 – Val

答えて

1

query_stringクエリで試したことがありますか?例えば、私は以下のようなTwitterのデータを使用:このため

GET /twitter2/tweet/_search 
{ 
    "query": { 
     "query_string": { 
      "default_field": "entities.media.url", 
      "query": "https\\:\\/\\/t.co\\/* AND -https\\:\\/\\/t.co\\/6*" 
     } 
    }, 
    "_source": ["entities.media.url"] 
} 

は私のマッピングを検索:

PUT /twitter2/tweet/_mapping 
{ 
    "properties": { 
     "entities": { 
      "properties": { 
       "media": { 
        "properties": { 
         "url": { 
          "type": "string", 
          "index": "not_analyzed" 
         } 
        } 
       } 
      } 
     } 
    } 
} 

そして、あなたはあなたのケースのために次のクエリを使用することができます

GET /your-index/your-type/_search 
{ 
    "query": { 
     "query_string": { 
      "default_field": "url", 
      "query": "http\\:\\/\\/*.example.com AND -http\\:\\/\\/www.example.com" 
     } 
    } 
} 

を注:データのインデックス付け中に何かを使用してurlとと表示された場合は、結果が速くなることがわかります。 elastic 5.xでは、このようにデータを操作するためにingest nodeを使用することができます。私はこのためのパイプラインを作成しようとしますが、あなたは

関連する問題