我使用Elasticsearch 2.2.1搜索与特定地理位置相关的文档(在bouding框内)。我想创建一个可以用来检查新文档是否与现有查询相关的过滤器。
如果我将过滤器放入包含文档的索引中,但由于此document中提到的问题以及提到的解决方法here,我需要将percolate查询放入专用的过滤器中索引。
当我尝试将过滤器放入此索引时:
PUT /mypercindex/.percolator/1
{"query": {"filtered": {"filter":
{"bool":
{"should":
[
{"geo_bounding_box":
{"location.coordinates":
{"bottom_right":
{"lat":50.0,"lon":8.0}
,"top_left":
{"lat":54.0,"lon":3.0}
}
}
}
]
}
}
}}}
我收到一条错误消息:
可以为名称为[location.coordinates]
的字段找到严格的字段分辨率和字段映射
在过滤器文档中mentioned,如果是专用的过滤器索引,您需要:
确保来自普通索引的映射也可用于渗透指数
这可能会导致我的问题,但我找不到有关如何从另一个索引中获取映射的文档。我尝试使用与我的文档索引相同的映射添加专用的过滤器索引,但是当我这样做时,我仍然得到相同的错误消息。
我的文档索引的映射类似于:
{"my_mapping": {
"dynamic":"strict",
"properties":{
"body":{
"properties":{
"author":{
"type":"string",
"index":"not_analyzed"
},
"hashtags":{
"type":"string",
"index":"not_analyzed"
},
"language":{
"type":"string",
"index":"not_analyzed"
}
,"text":{
"type":"string",
"analyzer":"stopwords"
},
"title":{
"type":"string",
"analyzer":"stopwords"
}
}
},
"location":{
"properties":{
"coordinates":{
"type":"geo_point"
},
"names":{
"type":"string",
"analyzer":"standard"
}
}
}
}
}}
非常感谢任何帮助!
答案 0 :(得分:0)
向映射添加<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="2">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/mainText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Default Text"
android:textSize="24dip" />
<TextView
android:id="@+id/detailsText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:text="Default Text"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:text="Hot"
/>
</LinearLayout>
映射,例如mentioned in the Github issue that addresses this workaround,为我解决了问题:
.percolator