簡體   English   中英

如何在ElasticSearch字段名稱中使用regexp查詢過濾器?

[英]How to use regexp query filter in ElasticSearch Field Names?

對於下面給出的ElasticSearch索引的測試數據,我們如何消除包含UUID或任何正則表達式的字段名稱?

{
  "_index": "twitter",
  "_type": "test_data",
  "_id": "05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28",
  "_score": 8.843938,
  "_source": {
    "test_data-created_time": 1485858118,
    "test_data-status": 1,
    "cluster-05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28": "ElasticSearch"
  }
}

我可以通過下面的查詢來滿足此要求,但是有許多字段與UUID匹配,這是字段名稱本身的一部分。 任何人都對如何優化有更好的想法?

GET /twitter/test_data/_search
{
  "_source": {
    "excludes": [
    "cluster-05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28"
    ]
  }
}

不知道是否有排除通配符之外的其他方式的方法。 如果您所有的UUID字段都具有像特定前綴這樣的模式,例如cluster,則可以使用cluster-* 否則,如果它與其他字段不沖突,則可以使用以下方法:

"_source": {
    "excludes": ["*-*-*-*-*"]}

同意這不是一個很干凈的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM