簡體   English   中英

Elasticsearch Char過濾器用正則表達式替換該行的所有單詞

[英]Elasticsearch Char filter replace all the word of that line with regex

我正在嘗試在elasticsearch中實現一個字符過濾器來完成此任務-在句子中找到一個單詞[假設單詞為F],該句子可以在段落中。 它將為同一句子中[F]的以下所有單詞[A]添加前綴。

例如:如果輸入的文本是“這不是很好,而且很好。您好,世界。我不喜歡它。” 會變成“這不是好事,也不是優秀。世界你好。我不喜歡它。”

就目前而言,我可以在[F]一詞之后的同一行中替換下一個直接詞。

我的過濾器如下所示:

      "char_filter" : {
            "post_negs" : {
                "type" : "pattern_replace",
                "pattern" : "\\b((?i:never|no|not))\\s+(\\w*\\.|\\?|!)",
                "replacement" : "$1 ~$2"
            }
       }

現在,我如何才能使用此目標。 TIA。

好的,所以我發現您目前制作的正則表達式和您希望最終結果是什么不一致(請參考您的示例),但是如果我理解您要查找的要點,我認為應該可以解決:

\\b(?!not?\\b)(?!never\\b)([\\w-]+)替換為~$1

請注意,第一個前瞻將匹配notno

暫無
暫無

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

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