给出以下实体:
@NodeEntity
public final class Foo
{
@GraphId
private Long id;
@Indexed
private String name;
}
存储库:
public interface FooRepository extends GraphRepository<Foo> {}
服务:
@Service
public class FooService
{
@Autowired FooRepository fooRepo;
public List<Foo> searchFor() {
EndResult<Foo> results = fooRepo.findAllByPropertyValue("name","*");
results.size(); //no results
}
}
我依赖于驻留在IndexRepository
中的函数,因为我想利用Lucene查找。但是,上述查询无法返回任何内容。
答案 0 :(得分:2)
我认为你不能在 findAllByPropertyValue 方法中使用通配符。也许使用 findAllByQuery 方法,你可以在哪里使用它们。您的查询可以简单如下:
name:*
答案 1 :(得分:0)
我同意应该这么简单。我试图强制它进入Lucene查找
如果我理解你想要什么,你能直接查询索引吗?
@Autowired
Neo4jTemplate fooTemplate;
...
fooTemplate.getIndex(Foo.class).query("name:*");
这应该与添加
相同@Query("start n=node:fooIndex(name=*)")
Set<Foo> getAllFoos();
到FooRepository
。