예컨대, 내가 검색이 DSL 사용하는 경우 :최대 절전 키워드 검색
Query query = queryBuilder.keyword().onField("person").matching("man").createQuery();
을 나는 결과가 단지 필드에서 He is a man
같은 결과가없는 필드 person
에 한 단어 man
을 포함합니다. 어떻게해야합니까?
누군가 단서가 있습니까 ??? Thx
예컨대, 내가 검색이 DSL 사용하는 경우 :최대 절전 키워드 검색
Query query = queryBuilder.keyword().onField("person").matching("man").createQuery();
을 나는 결과가 단지 필드에서 He is a man
같은 결과가없는 필드 person
에 한 단어 man
을 포함합니다. 어떻게해야합니까?
누군가 단서가 있습니까 ??? Thx
무료 텍스트 검색이 작동하는 방식이 아닙니다. 검색어가 일치하고 단일 용어 만있는 경우에만 일치해야한다고 말할 수 없습니다. 자유 텍스트 검색 엔진의 요점은 주어진 텍스트 코퍼스 내에서 일치하는 것을 찾는 것입니다. 필드 사람이 한 번 "남자"를 포함하고 한 번 "그는 남자"일 경우 두 사람 모두에 대해 일치 항목을 얻습니다 (분석되지 않은 필드를 색인화하지 않는 한). 차이는 점수에 있습니다.
표준 Hibernate 쿼리를 사용하는 경우 (예 : HQL에서 from MyClass mc where mc.person = "man"
과 유사) HQL에 대한 자세한 정보를 찾을 수 있습니다 here
HQL을 사용할 수없는 경우 JPA criteria API 사용을 고려해보십시오.
@Hardy가 대답에 언급했듯이 사용 사례가 전체 텍스트 검색 방식과 일치하지 않습니다.
그러면 JPA 기준 API를 사용할 수 있습니까? –
일부 제한 사항으로 인해 프로젝트에서 HQL을 사용할 수 없습니다. 최대 절전 모드 검색 쿼리를 실행 한 후 결과에 대한 필터를 작성했습니다. 당신의 응답을위한 Ty. * – Stephan
응답을 위해서는 Thx가 너무 많습니다. 그러나 분석되지 않은 필드를 색인화 할 수는 없습니다. U는 그 차이가 점수에 있다고 말했고 점수로 결과를 필터링하는 예제를 줄 수 있습니까? – Stephan
또는 동적 필터를 사용하여 결과 길이를 제어 할 수 있습니까? ("사람"을 검색하면 결과 길이는 3이되어야합니다.) – Stephan