Что-то вроде этого тоже должно работать:
public static <T> List<T> convertListWithExtendableClasses(
final List< ? extends T> originalList,
final Class<T> clazz )
{
final List<T> newList = new ArrayList<>();
for ( final T item : originalList )
{
newList.add( item );
}// for
return newList;
}
Не знаю, почему clazz нужен в Eclipse ..
Сделайте ваше поле slug
многозначным:
<field name="slug" type="string" indexed="true" stored="true" multiValued="true" />
.. и сохраните все возможные варианты слагов. Если вы храните только long-title-slug
в этом поле сегодня и хотели бы сохранить его таким образом, добавьте вместо него новое поле:
<field name="path_slug" type="string" indexed="true" stored="true" multiValued="true" />
.. и затем включите все возможные значения для слагов в виде массив.
['posts/state', 'posts/city-name', ....]
Как именно вы это сделаете, зависит от кода, который вы используете для отправки контента в Solr, но все библиотеки Solr в некотором роде поддерживают это - либо путем многократного вызова addField
или аналогичного, либо путем массив для метода addField
.
Затем вы можете запросить этот слаг, используя path_slug:posts/state
.