2012-04-30 2 views
0

J'ai une application rails avec think_sphinx qui fonctionne avec succès pour l'indexation/la recherche. Je me demandais, cependant, s'il y avait un moyen d'obtenir des correspondances partielles de travail à rechercher. Ce qui signifie que si j'ai un rapport avec le titre "Best Report" et que j'ai cherché "Best", il retournera ce rapport.Thinking_Sphinx Correspondances de travail partielles

Répondre

2

je vous suggère d'essayer la recherche Wildcard avec Thinking Sphinx.

Il existe essentiellement trois paramètres qui gouvernent le monde de la recherche générique: * enable_star * min_prefix_len * min_infix_len

  • min_prefix_len => longueur du préfixe de mot minimum à l'index
  • min_infix_len => indexation Infix permet de mettre en œuvre wildcard la recherche par 'start *', '* fin' et «milieu caractères génériques

note: * enabled_star est nécessaire, plus un des othe r deux pour les paramètres pour permettre soit préfixe ou recherche infix (ne peut pas avoir les deux, au moins sur le même indice) *

Exemple:

Modèle:

class Comment < ActiveRecord::Base 

    #define the indexes for your searchable attributes 

    define_index do 
    indexes :comment 
    enable_star: true 
    min_infix_len: 3 
    has created_at,updated_at 
    end 

end 

Controller:

class CommentsController < ApplicationController 

    def search 
     @result = ThinkingSphinx.search "*#{params[:id]}*" ,:classes => [Comment,....] 

    end 
    end 

Puis Reconstruire la thinking_sphinx:

  1. ts de râteau: arrêt
  2. ts rake: indice
  3. ts rake: start

(ou)

  1. ts rake: reconstruire

l'exemple ci-dessus se traduira les instances suivantes:

  • Comment.search "Best *"

  • Comment.search "Best Rep *"

  • Comment.search "Rep" .. etc

Si des questions se sentent gratuit, s'il vous plaît demandez-moi .......

Questions connexes