I'm experimenting with indexing on a model using STI here, where a bunch of 
the subclasses will be searched in pretty much the same manner. Therefore 
I'm trying to set up an index on a class which is not the base class, but 
which is the parent of the aforementioned subclasses. It might be simpler 
to grok with an example

class Person; end
class SpecialistDoctor < Person
class Gynecologist < SpecialistDoctor
class Pediatrician < SpecialistDoctor
...

I'm trying to set up the index on the SpecialistDoctor. The problem is that 
the index always turns out empty. I've defined a pretty minimal one after I 
ran into some problems:

ThinkingSphinx::Index.define :specialist_doctor, with: :active_record do
  indexes [firstname, lastname], as: :name
end

This yields the following sql_query in specialist_doctor_core_0. I've 
formatted it for readability and marked the culprit in red:

SELECT 
    "people"."id" * 18 + 7 AS "id",
    COALESCE(NULLIF("people"."type", ''), 'SpecialistDoctor') AS 
"sphinx_internal_class_name",
    COALESCE("people"."firstname", '') || ' ' || 
COALESCE("people"."lastname", '') AS "name", 
    "people"."id" AS "sphinx_internal_id", 
    COALESCE(NULLIF("people"."type", ''), 'SpecialistDoctor') AS 
"sphinx_internal_class", 
    0 AS "sphinx_deleted"
FROM "people"
WHERE 
    "people"."type" IN ('SpecialistDoctor', 'Gynecologist', 'Pediatrician')
    AND (*"people"."type" = 'SpecialistDoctor'* AND "people"."id" BETWEEN 
$start AND $end) 
GROUP BY 
    "people"."id", "people"."firstname", "people"."lastname", 
"people"."id", "people"."type"


I would greatly appreciate some input on whether what I'm trying to do is 
simply not supported or if am I am just doing it wrong? I've tried this on 
both v3.1.1 and v3.1.2.

Thanks,
Roger

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx.
For more options, visit https://groups.google.com/d/optout.

Reply via email to