我嘗試在彈性搜索java api上使用正則表達式運行全文搜索。我的過濾器是這樣的:ElasticSearch全文搜索
FilterBuilder qFilter= FilterBuilders.regexpFilter("_all",
". *"+text+". *");
但它只匹配一個單詞而不是一個短語。我的意思是,例如:
如果在像soruce的字符串:「one two three four five..
」當我的文本字符串是這樣的:「two
」,「our
」,「thr
」 ...然後作品。
但是,當我的realTimeTextIn字符串是「two three
」全文檢索不起作用。我無法搜索一個以上的單詞。
我在這裏錯過了什麼?
代碼的其餘部分是這樣的:
FilterBuilder qFilter = FilterBuilders.regexpFilter("_all", ".*"+q+".*");
SearchResponse response = ClientProvider.instance().getClient().prepareSearch(index)
.setTypes(type)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setPostFilter(qFilter)
.setFrom(0).setSize(250).setExplain(true)
.execute()
.actionGet();
感謝幫助。
有matchPhrasePrefixQuery方法,它的工作原理,但我不能用它與正則表達式。 – rLyLmZ 2014-09-11 07:48:45