생각하는 스핑크스는 음의 값을 가진 레코드를 찾지 못한다. 내 경우, 열은 "site_id"이며 -1을 포함 할 수 있습니다 (우리는 NULL 대신 -1을 사용합니다). 내 인덱스 (I 별도로 시도 네 가지 예제와 함께) 아래의 예제처럼 보이는 :생각하는 스핑크스 - 부정적인 속성에 의한 필터링이 작동하지 않는다.
ThinkingSphinx::Index.define :incident, with: :active_record, delta: ThinkingSphinx::Deltas::ResqueDelta do
indexes site_id
# indexes site_id, type: :float
# has site_id
# has site_id, type: :float
end
내가 this answer 및 this answer에 따라된다 시도한 솔루션은,하지만 나를 위해 작동하지 않습니다. 내 스핑크스 버전은 == 연산자를 지원하지 않습니다. 내가 얻을 : 부동 소수점 필터 유형이 버전
에서 지원 만> =, < = 사이에 스핑크스를 업그레이드하는 것은 정말 옵션이 아니다 :
sphinxql. 이 작업을 수행하기 위해 수행 할 수있는 다른 작업은 무엇입니까?
속성의 유형을 변경하는 경우 색인을 재생성합니까? 스핑크스 색인은 다시 만들어야합니다 (ts : 다시 작업?) - 올바른 형식의 필터도 변경해야한다는 언급을 읽었습니까? – barryhunter
예, ts : rebuild를 실행했습니다. 네, 필터를 플로트로 실행했지만 스핑크스 버전에서는 허용하지 않습니다 : "sphinxql : only> =, <=, 그리고이 버전에서는 부동 소수점 필터 유형이 지원됩니다". – Jonathan
bigint 유형을 시도 했습니까? 최소한 서명되어 있어야합니다. 필터를 다시 쓸 수도 있습니다. 예 :'== -1'은'<= 0.5'로 재 작성 될 수 있습니다. – barryhunter