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*的东西应该可以工作。