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.