0
탄성 찾기에 매우 복잡한 쿼리를 작성해야합니다.탄성 검색의 잘못된 쿼리
쿼리 문자열, query
에 저장되고, 아이디어는 필드 title
와 content
에 "BOOL"경기를 할 수 있지만, 다음과 같은 "자바"또는 "파이썬"로 단어에 특별한 무게를 제공하는 것입니다. 이 일에
내 시도는
{
"fields": ["title","content","id"],
"query": {
"function_score": {
"query":
{
"bool":
{
"should":
[
{"match": {"title": {"query": query, "boost": 15}}},
{"match": {"content": {"query": query, "boost": 9}}}
]
}
}
},
"functions": [
{
"filter": {
"match": {
"title": "java"
}},
"weight": 2 },
{
"filter": {
"match": {
"title": "python"
}},
"weight": 2 }
],
"boost_mode": "multiply"
}
}
입니다하지만 쿼리가 잘못되었습니다 없다는 오류 메시지가 표시됩니다. 이 질문이 순진한 질문이라면 유감이지만, 어디서 돌아야할지 모르겠다.
당신을 감사합니다! 이 쿼리는 실제로 작동합니다. – Brian
필터 (예 : "필터": [])를 사용하지 않으면 동일한 결과를 얻지 만 일반 쿼리에서 "bool"아래의 부품을 사용할 때 다른 점수를 얻습니다. 왜 그런지 알아? – Brian
음, 물론, 그 필터의 요지입니다. 쿼리와 일치하는 문서에서 특정 함수 (경우에 따라 'weight' 함수)에 따라 필터와 일치하는 문서의 점수가 달라집니다. ''boost_mode ':''곱하기''와'weight : 2'는'title'이'java' 또는'python'과 일치 함을 의미합니다. –