У меня есть Solr 4.3.0, и я пытаюсь использовать SpatialRecursivePrefixTreeFieldType для пространственного поля. Данные поступают из поля геометрии MySQL, и SQL-запрос возвращает данные для этого поля, используя AsText()
. Основной запрос выглядит следующим образом:Solr SpatialRecursivePrefixTreeFieldType и MySQL DIH
SELECT AsText(data_geo) as data_geo FROM table;
data_geo поле определяется в schema.xml как:
<field name="data_geo" type="location_rpt" indexed="true" stored="true"
multiValued="false" />`
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />
Когда я выполнить основные не-geofiltered запрос, ответ выглядит следующим образом:
{
"responseHeader": {
"status": 0,
"QTime": 0,
"params": {
"indent": "true",
"q": "*:*",
"_": "1384375755970",
"wt": "json"
}
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"date_modified": "2013-11-13T16:53:57Z",
"id": "165733_0_1",
"data_geo": "POINT(43.87910249999999 -103.4590667)",
"_version_": 1451618631810023400
}
]
}
}
Добавление {!} geofilt устраняет все результаты, даже если выше точка находится в пределах 10 км от точки Я фильтрация:
{
"responseHeader": {
"status": 0,
"QTime": 1,
"params": {
"indent": "true",
"q": "*:*",
"_": "1384376149059",
"wt": "json",
"fq": "{!geofilt pt=43.879103,-103.459067 sfield=data_geo d=10}"
}
},
"response": {
"numFound": 0,
"start": 0,
"docs": []
}
}
Кто-нибудь знает, что здесь происходит? Я не знаю, является ли проблема на стороне индексирования или стороне запроса; Я не мог найти никакой документации по использованию MySQL с Solr DataImportHandler и новым SpatialRecursivePrefixTreeFieldType.
Спасибо!
Спасибо! Я думаю, что некоторые данные должны быть выполнены в MySQL. Это займет некоторое время, поэтому я вернусь, как только это будет сделано. – dmaz99