0

URL を Elasticsearch のフィールドとして保存します。ただし、 にサブドメインを持つドキュメントのみをフィルタリングしたいと思いますurl

例えば。

検索結果に

http://any-subdomain.example.com

しかし、私は結果を望んでいません

https://www.example.com

これは Elasticsearch クエリで可能ですか?

4

1 に答える 1

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注:およびとしてデータをインデックス化する際に処理するものを使用すると、結果をより速く取得できることを知っておく必要がありhostます。Elastic 5.x では、取り込みノードを使用して、このようにデータを操作できます。このためのパイプラインを作成しようとしますが、詳細についてはドキュメントを確認してください

于 2017-02-05T10:21:34.003 に答える