1

Может ли кто-нибудь объяснить соответствующий синтаксис Cypher Query, чтобы получить следующий результат из приведенного ниже запроса репозитория? Названия указанных ниже групп были сохранены в репозитории.Neo4j: синтаксис запроса Lucene в SDN4

  • Лос-Анджелес Лейкерс
  • Лос-Анджелес Клипперс Анахайма
  • Golden State Warriors
  • Лос-Анджелес Slappers Анахайм
  • Лос-Анджелес Тапочки Анахайм

я предложил ниже Cypher, который оказался в NPE. Neo4j: Native Java API(or equivalent cypher query) in Spring Data Neo4j

//Repository  
    public interface TeamRepository extends GraphRepository<Team> 
    { 
     @Query("start team=node:teamName({0}) RETURN team") 
     List<Team> findByTeamName(String query); 
    } 

Ниже вызов бросает NPE, когда вызывается следующим образом:

teamRepository.findByTeamName("The Los Angeles Will be Playing in a state of Golden"); 

NullPointerException:

Exception in thread "main" java.lang.IllegalStateException: Failed to execute CommandLineRunner 
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:675) 
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:690) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946) 
    at com.directv.service.Sports.main(Sports.java:134) 
Caused by: java.lang.NullPointerException 
    at org.apache.lucene.util.SimpleStringInterner.intern(SimpleStringInterner.java:54) 
    at org.apache.lucene.util.StringHelper.intern(StringHelper.java:39) 
    at org.apache.lucene.index.Term.<init>(Term.java:38) 
    at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:643) 
+0

Это скорее похоже на проблему lucene с вашей строкой запроса. Не забудьте процитировать (обратную косую черту) пробелы. –

+0

Можете ли вы поделиться своей строкой запроса lucene, вызвавшей эту ошибку? –

+0

@Michael Hunger Строка запроса - это просто текст: 'teamRepository.findByTeamName (« Лос-Анджелес будет играть в состоянии Золотого »);' – codebin

ответ

0

После нескольких проб и ошибок, я был в состоянии решить эту проблему. Как отметил @Michael Hunger, это проблема со встроенными символами пробела в запросе. Соответствующий запрос: @Query("START team=node:teamName('teamName:(*The Los Angeles Will be Playing in a state of Golden*)') RETURN team")

Смежные вопросы