So I have a situation where I want to search one model (let's say
Article) and it can be tagged, a la ActsAsTaggableOn. Furthermore,
they can be tagged with the same tag multiple times (by different
people, so the article gets a heavier weighting for that tag – think
de.licio.us).

If I have indexes as such:

define_indexes do
  indexes taggings.tag.name

  #...
end

then I can search across those tags fine. E.g. if I tag an article
with "ruby, rails, programming", the article is shown if I search for
any of those terms. The way sphinx indexes the associated tags is by
concatenating them all into one big text index that, for an article
tagged multiple times with the same tag, might look like "ruby ruby
ruby rails ruby programming ruby programming rails programming".

The problem lies in the fact that my system allows for tags with
spaces in it, and sphinx concatenates all my keywords together in one
index. This means that if I tag an Article with "martial arts" as a
discrete tag, searching for "arts" will match that Article. This isn't
necessarily the worst problem to have, but there's a good bet that
when a user searches arts they weren't expecting to get Articles
relating to martial arts. Some people may, but there's other scenarios
like "housing development" and searching for "development" (as in
software).

Any thoughts about how the index could be manipulated in a way that
let me search for discrete tags across all articles, maintaining the
ability to weight articles heavier if it's tagged multiple times?

Cheers,
Bo

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to