簡體   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