【发布时间】:2016-08-01 07:18:59
【问题描述】:
我正在使用弹性搜索 1.4 和 couchbase 3.2。我必须根据位置找到所有文件。例如,我必须找到用户的纬度和经度,并显示他附近与他的兴趣相匹配的所有事件。我将事件数据存储在 couchbase 上。
{
"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": "raushankumar@gmail.in",
"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文件中的映射是as
{
"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
}
}
}
}
}
我的弹性搜索集群中有五个索引,名为“事件、组、聊天消息、赞助商和用户数据”。从他们那里,我想仅针对事件和组索引进行基于位置的映射。我必须改变什么..?
【问题讨论】:
-
嘿@val,你有什么建议
-
你的 ES 映射是什么样子的?
-
在我的映射中显示为 "mappings":{ "couchbaseDocument":{ "doc":{ "lan":{ "type":"string" }, "lat":{ "类型":"字符串" } } } }
-
嘿@Val,我研究发现这是elasticsearch couchbase_template.json 的默认映射。能否提供一个索引映射结构示例
标签: php elasticsearch couchbase