当前位置: 首页 > 知识库问答 >
问题:

ElasticSearch正则表达式筛选器

柴宝
2023-03-14

我在正确表达ElasticSearch regexp过滤器的regexp时遇到了问题。我正在尝试匹配url字段中“info-for/media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press-release-1。为了尝试获得正确的正则表达式,我现在使用match_all,但最终将是带有用户查询字符串的match_phress

发布到localhost:9200/_search

{
"query" : {
               "match_all" : { },
               "filtered" : {
                           "filter" : {
                                   "regexp": {
                                        "url":".*info-for/media.*" 
                                    }
                          }
                }
         },
}

返回0次命中,但解析正确。.*info.*确实会得到包含url的结果,但遗憾的是,它的范围太广,例如,匹配任何包含“information”的url。当我将“info-for”中的连字符添加回来时,我再次得到0个结果。无论尝试哪种转义字符组合,要么得到解析异常,要么没有匹配。有人能解释一下我做错了什么吗?

共有1个答案

翁宜年
2023-03-14

其次,您的url可能是以使索引中的“info-for”和“media”分开的方式标记的。因此,字典中没有info-for/media-术语可供regexp匹配。

您可能想要做的是分别索引路径和域,使用path_hierarchy-tokenizer生成术语。

下面是一个示例,演示了令牌是如何生成的:https://www.found.no/play/gist/ecf511d4102a806F350b#analysis

即。/foo/bar/baz生成令牌/foo/bar/baz,/foo/bar,/foo并且域foo.example.com被标记为foo.example.com,example.com,com

在下面的/foo/bar中搜索任何内容可以是一个匹配path:/foo/bar的简单术语筛选器。这是一个性能更好的过滤器,也可以缓存。

 类似资料:
  • 问题内容: 我在为ElasticSearch Regexp Filter正确表达正则表达式时遇到问题。我正在尝试匹配url字段中“ info-for / media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press- release-1 。为了尝试正确使用我现在使用的正则表达式,但这最终将与用户的查询字符串一起使用。 POST到localhos

  • 我们正在使用Nutch抓取一些站点,向Elasticsearch推送索引,并通过调用Elasticsearch API使用自定义UI进行搜索。 http://www.somesite.com/contact/ http://www.somesite.com/privacy/ 当我运行DSL查询时,它似乎是将它分解成几个片段(我指的是http、www、somesite、com)并将它们组合在一起,这

  • 我想在其中一列上使用正则表达式干净地过滤数据帧。 举一个人为的例子: 我想使用正则表达式过滤以开头的行。第一次去: 那不是太有用。然而,这将得到我的布尔索引: 所以我可以这样做我的限制: 这让我人为地把一组人加入正则表达式,似乎这不是一个干净的方法。有更好的方法吗?

  • 我使用这个正则表达式: 要匹配这样的字符串: 分为4组: 问:我如何使第一个组可选,使结果组是一个空字符串? 我想在每种情况下得到4组,如果可能的话。 这种情况下的输入字符串:(第一组后面没有下划线)

  • 问题内容: 我正在寻找有关通过jQuery选择器使用通配符或正则表达式(不确定确切术语)的文档。 我自己寻找了此信息,但无法找到有关语法以及如何使用它的信息。有谁知道语法的文档在哪里? 编辑:属性过滤器使您可以基于属性值的模式进行选择。 问题答案: James Padolsey创建了一个很棒的过滤器,允许使用正则表达式进行选择。 说您有以下内容: Padolsey的过滤器可以像这样选择它: 另外,

  • 本文向大家介绍PowerShell中使用正则表达式筛选数组实例,包括了PowerShell中使用正则表达式筛选数组实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell中使用match操作符,配合正则表达式从数组中筛选出想要的内容。 先看下面这个例子: 我们知道ipconfig是显示当前计算机的TCP/IP配置信息的,其中有一项是IP地址。如果有多个网卡,或者一个网站上配置有多