2013-10-15 3 views
2

У меня есть поисковый запрос, содержащий цитируемые фразы и другие слова, и хотел бы использовать spring-data-solr 1.0.Как искать по фразам в Spring Data Solr 1.0

Ниже приведен пример запроса: dog "siamese cat" penguin

Я пытался что-то подобное,

new Criteria("myfield").contains("dog") 
     .and(new Criteria("myfield").contains("siamese cat")) 
     .and(new Criteria("myfield").contains("penguin")); 

Это было то, что я пытался, пока я не увидел, что бросает исключение, если он содержит пробелы.

В последнее время я пробую .expression(), но не уверен, как это работает, или если это даже жизнеспособное решение.

Любые идеи? Благодаря/ш

+0

.is' чтобы работать, но не уверен, соответствует ли это '* siamese cat *'. – wsams

+4

Да. будет делать фразу в случае пробелов между ними. Но * будет сбежать. Выражение принимает заданную строку и не требует дальнейшей обработки. –

ответ

3

я решить ее с выражением:

new Criteria("myfield").expression("\"siamese cat\"") 
0

Это работает для меня ... так как пространство специальный символ просто избежать его: `() появляется

new Criteria("myfield").expression("siamese\ cat") 
Смежные вопросы