1

给定以下实体:

@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 查找。但是,上面的查询没有返回任何东西。

4

2 回答 2

2

我认为您不能在findAllByPropertyValue方法中使用通配符。也许使用findAllByQuery方法可以在哪里使用它们。您的查询可能很简单:

name:*
于 2013-04-15T07:21:51.123 回答
0

我同意它应该是那么简单。我正在尝试将其强制为 Lucene 查找

如果我明白你想要什么,你可以不直接查询索引吗?

@Autowired 
Neo4jTemplate fooTemplate;
...
fooTemplate.getIndex(Foo.class).query("name:*");

这应该与添加

@Query("start n=node:fooIndex(name=*)")
Set<Foo> getAllFoos();

到你的FooRepository.

于 2013-06-18T16:30:13.390 回答