私は、10または12の異なるインデックスでフェレット指数付けされたモデルスクールを持っています。acts_as_ferret - 少数のフィールドに検索を制限する方法は?
は、ある特定の検索では、私は、次のいずれかのフィールドに検索語に一致するだけで学校を返すようにしたい:["name", "postcode", "urn"]
例えば
、「グランジ」の検索(URNは、フィールドのUID一種です)その名前に "grange"という名前の学校を返すべきですが、その住所に "grange"を持っている学校を返すことはできません。ただ一つのフィールド(例えば、名前)があります場合は
、私は
School.find_with_ferret("name:#{term}")
することによって、これを達成することができます。しかし、私は、フィールドのリストでこれを行う方法を動作することはできません。私は私が
School.find_with_ferret("name:#{term} || postcode:#{term} || urn:#{term}")
または
School.find_with_ferret("name:#{term} or postcode:#{term} or urn:#{term}")
が、これらの作業のどちらも同じように、「または」構文を使用することができるかもしれないと思いました。誰でもこれを行う方法を知っていますか?おかげで、acts_as_ferretのドキュメントから最大
、私はこれは私が3の内容を集約し、新たなフィールドを作ることである、これを達成するための一つハック方法を考えてきたモデル・レベル –
上で定義されると信じてフィールド(例:名前、郵便番号、壷)を検索してから、この新しい集約フィールドに対してのみ検索したい場合は、1つのフィールドのみで検索できます。私は非常にハッキーだと思うのですが、私の検索条件を変更するには、すべてのレコードを再索引付けする必要があります(現在約4時間かかります)。 –