繁体   English   中英

使用 ElasticSearch 搜索时如何忽略 URL?

[英]How to ignore URL when searching using ElasticSearch?

嗨,我有一组文档,其中可能包含一些文本,但其中可能包含 URL:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt metus a convallis imperdiet. Praesent interdum magna ut lorem bibendum vehicula. Maecenas consectetur tortor a ex pulvinar, sit amet sollicitudin nunc maximus. Pellentesque non gravida ligula, imperdiet pharetra odio. Nunc non massa vitae mauris tempor tempus. Nulla ac laoreet tellus. Nulla consequat tortor eu eros euismod bibendum. Curabitur ante ligula, aliquet at lacus at, pretium convallis eros. Fusce id mi condimentum, tempor lorem ut, pharetra libero.

https://document.io/document/ipsum

In eget eleifend neque. Morbi ex leo, tincidunt non enim ut, rutrum suscipit metus. Cras laoreet ex ut massa consequat condimentum. Aenean finibus eu nisl ut rhoncus. Aliquam finibus nisl risus, id facilisis justo rutrum et. Aenean enim libero, commodo id mi ut, mattis sollicitudin tellus. Aliquam molestie ligula sit amet lorem malesuada, aliquet pretium dolor malesuada. Phasellus fringilla libero in sollicitudin tristique. Quisque molestie, enim et aliquam dapibus, ex erat ultrices nisi, luctus ornare lorem metus eu sapien.

我正在使用匹配查询来搜索文档中的单词,但是,正如您所看到的,有时 URL 中的单词也是实际文本的一部分。 这是把结果搞砸了。 我只是想知道 ElasticSearch 是否有办法让我简单地忽略 URL 而只关注文本?

目前我正在为这个领域使用english分析器。

您可以在分析器中使用模式替换字符过滤器 要从文本中删除 URL,您可以将此过滤器添加到搜索分析器:

筛选:

"char_filter": {
    "type": "pattern_replace",
    "pattern": "\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]",
          "replacement": ""
}

此过滤器将用empty string替换 URL,因此您不会从 URL 匹配中获得结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM