Michael,
I'd suggest taking advantage of SDN's auto-repo-foo: http://static.springsource.org/sprin.../html/#d5e1308
Code:
@NodeEntity
class MyNode {
@GraphId
private Long id;
@Indexed(indexType = IndexType.FULLTEXT, indexName = "name")
private String name;
MyNode() {
}
public MyNode(String name) {
this.name = name;
}
}
interface MyNodeRepository extends GraphRepository<MyNode> {
Page<MyNode> findByNameLike(String name, Pageable page);
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class FullTextSearchTests {
@Autowired
private MyNodeRepository myNodeRepository;
@Configuration
@EnableNeo4jRepositories
static class Config extends Neo4jConfiguration {
@Bean
public GraphDatabaseService graphDatabaseService() {
return new ImpermanentGraphDatabase();
}
}
@Test
public void shouldFindBySubstring() throws Exception {
myNodeRepository.save(new MyNode("foo"));
myNodeRepository.save(new MyNode("bar"));
myNodeRepository.save(new MyNode("car"));
assertThat(myNodeRepository.findByNameLike("*ar*", new PageRequest(0, 20)).getNumberOfElements(), is(2));
assertThat(myNodeRepository.findByNameLike("*o", new PageRequest(0, 20)).getNumberOfElements(), is(1));
assertThat(myNodeRepository.findByNameLike("ca?", new PageRequest(0, 20)).getNumberOfElements(), is(1));
}
}