Hi Yuri
It's certainly possible, but more complex - you'll need to construct the filter
in a more manual manner. I think the following will work:
Digitalasset.search(
select: "*, LENGTH(product_ids) = 0 OR IN(product_ids, #{ids.join(', ')} AS
in_products",
with: {in_products: true}
)
Though you need to be using Sphinx 2.1.2 or newer (that's when the LENGTH
function was introduced to Sphinx).
If you're using Thinking Sphinx v3.0.6, that'll work, but you'll need to make
changes as outlined in the release notes:
https://github.com/pat/thinking-sphinx/releases/v3.0.6
Or, you can upgrade to v3.1.0, which works with Sphinx 2.1.x releases as the
default. A read of the release notes for other changes wouldn't hurt:
https://github.com/pat/thinking-sphinx/releases/v3.1.0
Cheers
--
Pat
On 1 Feb 2014, at 1:28 am, [email protected] wrote:
> Hi all,
> for first sorry for my english.
>
> I've 3 tables in my DB
> - digitalassets
> - product_digitalassets
> - products
>
> the 2nd table is a join table in a M:N relationship
>
> I collect documents through digitalassets table and I've created an attribute
> field in my Index:
>
> as product_digitalassets.product_id, :as => :product_ids
>
> in order to filtering the resultset.
>
> In fact I send to search the query command:
>
> with: { product_ids: ids } where ids is an array of product ID
>
> Everything is ok but now I want to retrieve not only the Digitalassets within
> the list o product_ids but also the Digitalassets without a product
> association.
>
> I mean:
>
> Digitalasset 1 -> products [1,2,3]
> Digitalasset 2 -> products [1,2,4]
> Digitalasset 3 -> products [5,6,7]
> Digitalasset 4 -> products NULL
>
> How to get the Digitalasset 1, Digitalasset 2 and Digitalasset 4?
>
> Now for me is sufficent to search with: { product_ids: [1,2] } -> result =
> Digitalasset 1 and Digitalasset 2
>
> But in this way I can not get the Digitalasset 4.
>
> Thanks in advance.
>
> --
> 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/groups/opt_out.
--
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/groups/opt_out.