Как я могу преобразовать 2 строки в поле данных местоположения Solr, используя DIH или оператор copyfiled или sql cast? - PullRequest
1 голос
/ 14 ноября 2011

У меня в schema.xml есть следующие данные:

<field name="x_geo_x_coordinate" type="double" indexed="true" stored="true" default="0"/>
<field name="x_geo_y_coordinate" type="double" indexed="true" stored="true" default="0"/>
<field name="x_geo" type="location" indexed="true" stored="true" default="0.0,0.0"/>

, и мне удалось импортировать из БД лат, длинные строки:

<field name="x_geo_x_str_coordinate_s" type="string" indexed="true" stored="true" default="0"/>
<field name="x_geo_y_str_coordinate_s" type="string" indexed="true" stored="true" default="0"/>
<field name="x_geo_str" type="string" indexed="true" stored="true" multiValued="true" default="0,0"/>

Как мне скопировать /преобразовать 2 строки в двойное с помощью простого решения?

Обновление 1: Хорошо, преобразование из строки в двойное сработало, и большое спасибо за решение!Теперь у меня есть два двойных поля:

<field name="x_geo_x_coordinate" type="double" indexed="true" stored="true" default="0"/> 
<field name="x_geo_y_coordinate" type="double" indexed="true" stored="true" default="0"/>

и то, что я хочу: двойное значение 2 в одном поле местоположения:

<field name="x_geo" type="location" indexed="true" stored="true" default="0.0,0.0"/>

То, что я до сих пор пробовал и делает 't работа:

<copyField source="*_coordinate" dest="x_geo"/>
<copyField source="x_geo_str" dest="x_geo"/>

Любое простое решение?Заранее спасибо!

1 Ответ

1 голос
/ 14 ноября 2011

Вы можете использовать copyField следующим образом в вашем файле schema.xml:

  <copyField source="x_geo_x_str" dest="x_geo_x_coordinate"/>
  <copyField source="x_geo_y_str" dest="x_geo_y_coordinate"/>
  <copyField source="x_geo_str" dest="x_geo"/>
...