mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-29 23:32:12 +00:00
parent
40d0ec2801
commit
0b062a4a52
@ -28,6 +28,7 @@ import java.util.ListIterator;
|
||||
import org.apache.lucene.queryparser.flexible.core.util.StringUtils;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
import org.apache.lucene.queryparser.flexible.standard.QueryParserUtil;
|
||||
import org.springframework.data.elasticsearch.core.query.Criteria;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@ -39,6 +40,7 @@ import org.springframework.util.Assert;
|
||||
* @author Franck Marchand
|
||||
* @author Artur Konczak
|
||||
* @author Rasmus Faber-Espensen
|
||||
* @author James Bodkin
|
||||
*/
|
||||
class CriteriaQueryProcessor {
|
||||
|
||||
@ -141,7 +143,7 @@ class CriteriaQueryProcessor {
|
||||
OperationKey key = entry.getKey();
|
||||
QueryBuilder query = null;
|
||||
|
||||
String searchText = StringUtils.toString(value);
|
||||
String searchText = QueryParserUtil.escape(StringUtils.toString(value));
|
||||
|
||||
switch (key) {
|
||||
case EQUALS:
|
||||
|
@ -49,6 +49,7 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
* @author Rizwan Idrees
|
||||
* @author Mohsin Husen
|
||||
* @author Peter-Josef Meisch
|
||||
* @author James Bodkin
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
|
||||
@ -798,6 +799,31 @@ public class CriteriaQueryTests {
|
||||
assertThat(page.getContent().get(0).getMessage()).isEqualTo("ab");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldEscapeValue() {
|
||||
|
||||
// given
|
||||
String documentId = randomNumeric(5);
|
||||
SampleEntity sampleEntity = new SampleEntity();
|
||||
sampleEntity.setId(documentId);
|
||||
sampleEntity.setMessage("Hello World!");
|
||||
sampleEntity.setVersion(System.currentTimeMillis());
|
||||
|
||||
IndexQuery indexQuery = new IndexQuery();
|
||||
indexQuery.setId(documentId);
|
||||
indexQuery.setObject(sampleEntity);
|
||||
elasticsearchTemplate.index(indexQuery);
|
||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||
|
||||
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("Hello World!"));
|
||||
|
||||
// when
|
||||
SampleEntity sampleEntity1 = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
|
||||
|
||||
// then
|
||||
assertThat(sampleEntity1).isNotNull();
|
||||
}
|
||||
|
||||
@Builder
|
||||
@Setter
|
||||
@Getter
|
||||
|
Loading…
x
Reference in New Issue
Block a user