문서를 읽은 후 elasticsearch에 다소 좌절감을 느낍니다. 그러나 '생성 된 쿼리가 유효하지 않습니다'라는 응답을 초과 할 수 없습니다. 지형 공간 정보와 대용량 데이터 세트에서 불완전한 중복을 찾으려면 elasticsearch를 사용하십시오. 이름 (부스트)과 주소를 일치시키고, 결과를 작은 지리적 상자로 필터링 한 다음 내 참조 지점에서 멀리있는 일치 항목의 관련성 점수를 줄입니다. 누군가가 도와 주실 수 있습니까? 내가 쿼리의 개별 요소를 understnad 생각, 내 주요 문제는 유효한 제품은 어떤 방식으로 함께 이들을두고있다.Elasticsearch : 생성 된 쿼리가 잘못되었습니다.
$query = new \Elastica\Query\Builder('{
"function_score": {
"functions": [
{
"gauss": {
"location": {
"origin": "'.$latitude.', '.$longitude.'",
"scale": "2km"
}
}
}
],
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"match": {
"name": {
"query": "'.$name.'",
"boost": 4
}
}
},
{
"match": {
"address": {
"query": "'.$address.'",
"boost": 1
}
}
}
]
}
},
"filter": {
"geo_distance": {
"distance": "2km",
"location": {
"lat": "'.$latitude.'",
"lon": "'.$longitude.'"
}
}
}
}
}
}')
"DECAY_FUNCTION"은 함수가 아닙니다. "gauss", "linear"및 "exp"가 있습니다. –
예를 들어 'guass'대신 DECAY_FUNCTION을 사용하면 쿼리가 여전히 유효하지 않습니다 (위의 텍스트를 편집하기 위해 편집했습니다). 어떤 제안? – andrewl
철자 가사가 적절하게 어쩌면? – greg0ire