Я использую Infinispan 6.0.2 и Hibernate Search 4.4.0.
В моем кеше есть некоторые данные, значение которых равно hibernate_search_DSL
(тип String). Когда я использую поиск по ключевым словам с hibernate
, он не может найти результат с подчеркиванием (hibernate_search_DSL
).
Я думаю, что в Hibernate hibernate_search_DSL
— это всего лишь одно слово, поэтому я написал String Bridge, пытаясь заменить все _
на пробел, но это не сработало.
Вот мой класс:
public class NormaliseValue implements StringBridge{
public String objectToString(Object object)
{
if(object == null)
throw new IllegalArgumentException("There is no value to normalise");
String value = object.toString();
value.replaceAll("_", " ");
return value;
}
}
И индекс сопоставления:
mapping.entity(Hibernate.class).indexed().providedId()
.property("value", ElementType.FIELD).field().bridge(NormaliseValue.class);
Что-то не так или есть какое-то решение, чтобы найти результат с подчеркиванием ???