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

使用正则表达式查询/筛选Elasticsearch字段的全部值

冯招
2023-03-14

我们正在使用Nutch抓取一些站点,向Elasticsearch推送索引,并通过调用Elasticsearch API使用自定义UI进行搜索。

http://www.somesite.com/contact/

http://www.somesite.com/privacy/

当我运行DSL查询时,它似乎是将它分解成几个片段(我指的是http、www、somesite、com)并将它们组合在一起,这总是返回所有的结果。

{
    "query": {
        "must": { "match": { "url": "http://www.somesite.com/page1" }}
    }
}

总是返回所有结果。

有人做过这样的事吗?

共有1个答案

屠建本
2023-03-14

对于regex,请尝试-

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html

您可以将url索引为关键字,并只对其进行术语查询,或者通过在映射中设置NOT_ANALYSTER来不分析该字段。

https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping-intro.html

但是,如果希望基于域和路径进行筛选,则最好在应用程序级别上分离主机和路径,然后分别进行索引。

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

  • 问题内容: 我的“ Street_Address_1”列中包含以下数据: 大街123号 使用Postgresql,如何编写查询以更新“地址”表中的“ Street_Name”列?换句话说,“ Street_Name”为空白,我想用“ Street_Address_1”列中包含的街道名称值填充它。 据我所知,我想使用“ regexp_matches”字符串方法。不幸的是,我没有很多运气。 注意:您可

  • 主要内容:查询以特定字符或字符串开头的记录,查询以特定字符或字符串结尾的记录,替代字符串中的任意一个字符,匹配多个字符,匹配指定字符串,匹配指定字符串中的任意一个,匹配指定字符以外的字符,使用{n}或者{nm}来指定字符串连续出现的次数正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。 MySQL 中,使用 REGEXP 关键字指定

  • 我想验证只包含Select查询的字符串。不管怎么说,还是要这么做的??查询

  • 如何在C++中使用正则表达式查询MongoDB数据库。 Mongo-CXX-Driver-R3.1.1 包括听力 这是我尝试过的。 以前我用Java构建了一个软件,现在我正在尝试用Qt C++构建同样的软件,我是C++的新手。 下面是我在java中用于查询的查询代码。

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