Java spring neo4j:如何按索引字段搜索数据,不区分大小写?
域类,如下所示:Java spring neo4j:如何按索引字段搜索数据,不区分大小写?,java,indexing,neo4j,cypher,spring-data-neo4j,Java,Indexing,Neo4j,Cypher,Spring Data Neo4j,域类,如下所示: @NodeEntity public class Product{ private Long nodeId; @Indexed(indexName = "productCode") private String code; ... } public interface ProductRepository extends GraphRepository<Product>{ @Query(value="start produ
@NodeEntity
public class Product{
private Long nodeId;
@Indexed(indexName = "productCode")
private String code;
...
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:productCode(code=~{0}) return product")
public Set<Product> findProducts(String code);
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:__types__(className='Product') where product.code='~{0}' return product")
public Set<Product> findProducts(String code);
}
存储库类:
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:productCode(code={0}) return product")
public Set<Product> findProducts(String code);
}
如何使代码查找不区分大小写?
我尝试正则表达式,但失败。代码如下:
@NodeEntity
public class Product{
private Long nodeId;
@Indexed(indexName = "productCode")
private String code;
...
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:productCode(code=~{0}) return product")
public Set<Product> findProducts(String code);
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:__types__(className='Product') where product.code='~{0}' return product")
public Set<Product> findProducts(String code);
}
我知道有一种方法可行,但性能不好,代码如下:
@NodeEntity
public class Product{
private Long nodeId;
@Indexed(indexName = "productCode")
private String code;
...
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:productCode(code=~{0}) return product")
public Set<Product> findProducts(String code);
}
public interface ProductRepository extends GraphRepository<Product>{
@Query(value="start product=node:__types__(className='Product') where product.code='~{0}' return product")
public Set<Product> findProducts(String code);
}
一种方法是尝试将where子句与正则表达式一起使用:
请参阅或谢谢您的回复。下面的查询可以工作,但我认为随着代码被索引,性能应该会降低@Queryvalue=start product=node:\uuuu类型\uuu className='product'其中product.code='~{0}'返回产品。您是否尝试将索引全文化并将整个lucene查询作为参数提供?在@indexed注释中设置type=indexType.FULLTEXT,将code={0}替换为{0},并将查询字符串per传递给findProducts方法。这已经有一段时间了,但我认为通配符查询是不区分大小写的,所以传递类似于代码:PrOdUcTcOdE*的东西应该可以工作。