나는 탄성 검색 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