elasticsearch 쿼리에 대한 질문이 있습니다.
두 개의 문서가 있으며 콘텐츠 필드는 표준 분석기를 사용하며 값은 다음과 같습니다.
"content": "그러나 Wells Fargo에 대한 Buffett의 지분 과 다른 여러 주요 은행에 대한 Johnson Hot 지분"
"내용": "타코 벨의 최고 정보 존슨 뜨거운 Fancher 모바일 그들의 주요 초점이 순간에 있다는 것을 국가의 레스토랑 뉴스를 말했다"
일치 쿼리를 사용할 때 다음 두 문서를 얻을 수 있습니다.
localhost:9200/content/en-us/_search?pretty=true -d '
{
"query" : {
"match" : {
"content" : "johnson hot"
}
}
}'
그러나 나는 더 많은 쿼리를 사용하여 얻을 수 없습니다.
localhost:9200/content/en-us/_search?pretty=true -d '
{
"from": 0,
"size": 200,
"query": {
"more_like_this_field": {
"content": {
"like_text": "johnson hot",
"min_term_freq": 1,
"max_query_terms": 12
}
}
}
}'
결과:
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
아무도 이유를 알고 있습니까? SQL의 "like"와 유사한 쿼리가 더 비슷합니까?
감사합니다 Johnson
이 필드 쿼리와 더 비슷하면 지정된 필드의 내용을 일치시켜 유사한 문서를 제공합니다.
min_doc_freq 를 1 로 설정 해야 합니다. 이에 대한 기본값은 5이므로 5 개 이상의 문서에 나타나지 않으면 like_text 의 용어를 무시합니다 . 문서가 두 개뿐이므로 jhonson 과 hot 이라는 용어 는 모두 무시됩니다. 아래 쿼리가 작동합니다.
curl 'http://localhost:9200/content/en-us/_search?pretty=true' -d '{
"from": 0,
"size": 200,
"query": {
"more_like_this_field": {
"content": {
"like_text": "johnson hot",
"min_term_freq": 1,
"max_query_terms": 12,
"min_doc_freq": 1
}
}
}
}'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다