2016-11-13 93 views
2

我是ELK的新手。我想根據字段中出現的單詞的順序來搜索文檔。例如,Kibana正則表達式搜索

在DOC1,my_field: 「我的FOO WORD欄示例」
在DOC2,my_field: 「我的吧WORD FOO EXAMPLE」

我想在Kibana要查詢的文檔,其中 「foo」 被其次是「BAR」,而不是相反。所以,我希望doc1在這種情況下返回,而不是doc2。 我嘗試在Kibana搜索中使用以下查詢。但是,它不工作。此查詢甚至不會產生任何搜索結果。

my_field.raw:/.*FOO.*BAR.*/ 

我也試圖與分析領域(只是my_field),雖然我才知道,不應該工作。當然,這也沒有產生任何結果。

請幫我用這個正則表達式搜索。爲什麼我沒有得到該查詢的任何匹配結果?

回答

1

我不知道爲什麼那個正則表達式查詢不起作用,但我相信Kibana正在使用Elasticsearch的查詢字符串查詢記錄here因此,例如,您可以通過執行搜索來執行短語查詢(鏈接中記錄)在雙引號中,它會查找單詞「foo」,然後是「bar」。這樣做會更好,因爲您可以在分析的字段(my_field)上執行此操作,並在其中標記每個單詞以執行快速查找。所以,你在Kibana搜索將是:

my_field: 「FOO BAR」

更新:

看起來這是Kibana的一個惱人的怪癖(可能是向後兼容的原因)。無論如何,這不匹配你,因爲你搜索一個非分析字段,顯然Kibana默認是降低搜索,因此它不會匹配未分析的大寫「FOO」。您可以在Kibana高級設置here中對此進行配置,具體方法是將配置選項「lowercase_expanded_terms」設置爲false。

+0

感謝您的回覆。不只是這一點。即使「FOO」和「BAR」被一些其他詞隔開,我也將需要所有文檔。
例如: ** Match ** doc1,my_field:「我的FOO文字欄示例」。
**不匹配** doc2,my_field:「我的酒吧字FOO示例」 –

+0

因此,我將需要正則表達式而不是詞組匹配 –

+0

好吧,我想出了爲什麼這會發生在你身上(怪異的奇巴那奇怪)更新了答案。 – RyanR