2015-02-02 4 views
1

내 앱 내부에 무엇이 있는지 확실하지 않지만 검색어가 내 순서대로 내 결과를 제공하지 않는 것 같습니다. 최근에는 쿼리와 관련된 코드를 변경하지 않고 자체를 재정렬했습니다. 그러나, 나는 분명히 뭔가를 해냈다.Neo4j - 검색어 결과 임의의 순서

한 번에 내 rails c 결과를 파일에 기록하려고했습니다. 그러나 이는 단순히 쿼리 결과를 파일에 기록하는 것입니다. 난 그저 내가 다시 정렬 할 수 있습니다 내 관계 중 하나를 property :created_at를 추가하고 그 타임 스탬프를 정렬하여 생각

File.open('text.txt', 'w') do |f| 
    User.all.each do |u| 
     f.puts u.email 
    end 
end 

을 좋아

쿼리는 있었다 ... 그 쿼리의 주문에 영향을 것이라고 생각하지 않았다.

하지만 Q + A 연관성은 현재 액티브가 아니기 때문에이를 수행 할 방법이 없습니다.

그것은 생성 3 개 질문이 있었다 응용 프로그램에서이

<% @event.event_questions.each do |q| %>

같은이라고. 이 보여 결국 순서는

했다

2,1,3

어떻게 neo4j 쿼리 객체의 순서를 결정 하는가? 나는 무엇을 잘못했을 수 있 었는가?

답변

1

neo4j에는 노드가 생성 된 날짜/시간을 결정하는 방법이 없다고 생각합니다. 점진적으로 생성 된 내부 숫자 ID를 저장하지만 서버를 다시 시작할 때이 ID를 재활용 할 수 있습니다. 서버를 다시 시작한 후에 순서가 변경 될 수 있습니다. neo4j가 기본적으로 어떤 순서로든 노드를 반환하는지 잘 모르겠습니다. 나는 당신이 할 수있는, 당신이 ActiveRel없이 관계의 순서에 대한 ORDER BY

를 지정하지 않는 한이 순서를 보장하지 않습니다 있으리라 믿고있어 :

@event.event_questions(:question, :rel).order('rel.created_at') 
+0

이 올바른 것입니다. 객체가 ID에 의해 반드시 정렬되어야하는 것은 아닙니다. 객체를 찾기 위해 사용 된 쿼리 계획과 관련이 있다고 생각합니다. Neo4j 2.2.0을 사용하면 간단한 'MATCH (u : User) - [: KNOWS] -> (other : User) RETURN other'에서 반환 된 객체의 순서는 2.1.x에서 동일한 쿼리. – subvertallchris

+0

그것의 소리에 의해, 내가 이것을 고칠 수있는 유일한 방법은 내가 Q + A를 단순한 배치보다는 ActiveRel로 만들어야한다는 것입니다. – Clam

+0

ActiveRel을 사용해야한다고 생각하지 않습니다. 대답에서 나의 모범을 보았습니까? –