2015-11-14 77 views
0

類似於搜索字詞我希望能夠搜索術語,但不是匹配確切的術語,而是希望能夠匹配包含特定字符串的術語「abc」。Java彈性搜索:像

事情是SQL的LIKE "%abc%"

此刻,我有充分的項匹配,如:

 AndFilterBuilder andFilter = FilterBuilders.andFilter(); 
     andFilter.add(FilterBuilders.rangeFilter("@timestamp").gt(start).lt(end)); 
     andFilter.add(FilterBuilders.termFilter("@host", "abc")); 

有沒有辦法做到這一點?正則表達式可能是?

+0

的可能重複http://stackoverflow.com/questions/6467067/how-to-search-for-a-part-of-a-word-with-elasticsearch請不要使用「\ * abc \ *」,它會很慢,使用上述鏈接中描述的ngram – ChintanShah25

回答

1

嘗試使用這樣的:

andFilter.add(FilterBuilders.regexpFilter("@host", "*abc*")); 
+0

感謝您的回答:)我在正則表達式中只有一個小錯誤,它應該是「.abc。 *」。否則,它的工作! –