我正在使用彈性搜索1.4與couchbase 3.2。我必須根據位置找到所有文件。例如,我必須找到用戶的經度和緯度,並顯示他的興趣所匹配的所有附近的事件。我將事件數據存儲在couchbase中。彈性serach根據位置查找文檔
{
"createdUnder": "11",
"createdby": "4",
"name": "Vcunnect April Event Testing",
"location": "Madurai, Tamil Nadu, India",
"address": {
"venuename": "MKU University",
"address1": "MKU University",
"address2": "MKU University",
"city": "Madurai",
"state": "Tamil Nadu",
"country": "India",
"zipcode": "875485"
},
"description": "Vcunnect testing Event\r\n",
"lat": "9.9252007",
"lng": "78.11977539999998",
"startdate": "08/10/2016",
"enddate": "08/10/2016",
"starttime": "5:20pm",
"endtime": "7:00pm",
"organisers": [
{
"organisername": "Raushan Kumar",
"organiseremail": "[email protected]",
"organiserdescription": "Event Organizer",
"status": "active"
}
],
"starttimestamp": 1470867600,
"endtimestamp": 1470873600
}
我在我的文檔中有兩個字段「lat」和「lng」。使用這個和用戶位置的緯度和經度,我想找到用戶附近的事件。我正在使用此查詢來獲取文檔。
$searchParams['index'] = 'events';
$searchParams['type'] = 'couchbaseDocument';
$searchParams['from'] = 0;
$searchParams['size'] = 1000;
$searchParams['body']['query']['filtered']['filter']['bool']['must'][]['term']['displaystatus'] = 0;
$searchParams['body']['query']['filtered']['filter']['bool']['must'][]['term']['eventstatus'] = "active";
$searchParams['body']['query']['filtered']['filter']['bool']['must'][]['range']['starttimestamp']['from'] = $today;
$searchParams['body']['query']['filtered']['filter']['bool']['must'][]['term']['displayoutside'] = 1;
$searchParams['body']['query']['filtered']['filter']['bool']['must'][]['terms']['cat_id'] = $interestIdArray;
$result = $client->search($searchParams);
我在JSON文件映射是
{
"template" : "*",
"order" : 10,
"mappings" : {
"couchbaseCheckpoint" : {
"_source" : {
"includes" : ["doc.*"]
},
"dynamic_templates": [
{
"store_no_index": {
"match": "*",
"mapping": {
"store" : "no",
"index" : "no",
"include_in_all" : false
}
}
}
]
},
"_default_" : {
"_source" : {
"includes" : ["meta.*"]
},
"properties" : {
"meta" : {
"type" : "object",
"include_in_all" : false
}
}
}
}
}
我有五個指標以我命名 「活動,組,chatmessages,贊助商和用戶數據」 elasticsearch集羣。從他們我想要基於位置的映射只有事件和組索引。我必須改變..?
嘿@val,任何建議從你身邊 –
你的ES映射如何?在我的映射 – Val
它被顯示爲 「映射」:{ 「couchbaseDocument」:{ 「DOC」:{ 「LAN」:{ 「類型」: 「串」 }, 「LAT」:{ 「type」:「string」 } } } } –