org.nuiton.wikitty.storage.solr
Class WikittySearchEngineSolr

java.lang.Object
  extended by org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
All Implemented Interfaces:
WikittySearchEngine

public class WikittySearchEngineSolr
extends Object
implements WikittySearchEngine

Version:
$Revision: 704 $ Last update: $Date: 2011-02-15 15:42:04 +0100 (mar., 15 févr. 2011) $ by : $Author: bpoussin $
Author:
poussin

Field Summary
protected  TypeFieldModifier fieldModifier
          Field modifier use to transform to solr format
protected  SolrResource solrResource
          JTA resource
protected  org.apache.solr.client.solrj.SolrServer solrServer
          solr server
 
Constructor Summary
WikittySearchEngineSolr(org.nuiton.util.ApplicationConfig config, WikittyExtensionStorage extensionStorage)
          Init wikitty search engine on solr embedded server.
 
Method Summary
protected  void addToIndexDocument(org.apache.solr.common.SolrInputDocument doc, FieldType.TYPE type, String fqfieldName, Object fieldValue)
           
protected  void addToIndexDocument(org.apache.solr.common.SolrInputDocument doc, Wikitty w, String fqfieldName)
          modify one field in SolrInputDocument
protected  void addTreeIndexField(SolrResource solrResource, Map<String,org.apache.solr.common.SolrDocument> tree, AttachmentInTree attachmentInTree)
          Update attaced extra field on all objects passed in argument allAttachmentToIndex
protected  void addTreeIndexField(SolrResource solrResource, org.apache.solr.common.SolrInputDocument doc, Map<String,org.apache.solr.common.SolrDocument> tree)
          Modifie/Ajoute les champs specifique a l'indexation des arbres sur les TreeNode.
 void clear(WikittyTransaction transaction)
           
protected  org.apache.solr.common.SolrInputDocument createIndexDocument(Wikitty w)
          Create all index document to used to modify indexation.
 void delete(WikittyTransaction transaction, Collection<String> ids)
          Plusieurs actions possibles en fontion du type d'objet: suppression d'un objet NON noeud suppression de cet objets suppression de cet objets dans les attachments des noeuds qui le contiennent suppression d'un noeud d'arbre suppression du noeud reindexation des noeuds qui le contenait comme parent suppression des attached sur les objets contenus dans les attachments de ce noeud reindexation des objets qui le contenait comme parent dans un champs attached
 PagedResult<String> findAllByCriteria(WikittyTransaction transaction, Criteria criteria)
           
 TreeNodeResult<String> findAllChildrenCount(WikittyTransaction transaction, String wikittyId, int depth, boolean count, Criteria filter)
          Si l'argument n'est pas un TreeNode, une exception est levee
 void store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean force)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

solrServer

protected org.apache.solr.client.solrj.SolrServer solrServer
solr server


fieldModifier

protected TypeFieldModifier fieldModifier
Field modifier use to transform to solr format


solrResource

protected SolrResource solrResource
JTA resource

Constructor Detail

WikittySearchEngineSolr

public WikittySearchEngineSolr(org.nuiton.util.ApplicationConfig config,
                               WikittyExtensionStorage extensionStorage)
Init wikitty search engine on solr embedded server.

Parameters:
extensionStorage - extension storage
properties - properties (can be null)
Method Detail

clear

public void clear(WikittyTransaction transaction)
Specified by:
clear in interface WikittySearchEngine

store

public void store(WikittyTransaction transaction,
                  Collection<Wikitty> wikitties,
                  boolean force)
Specified by:
store in interface WikittySearchEngine

delete

public void delete(WikittyTransaction transaction,
                   Collection<String> ids)
            throws WikittyException
Plusieurs actions possibles en fontion du type d'objet:
  • suppression d'un objet NON noeud
  • suppression de cet objets
  • suppression de cet objets dans les attachments des noeuds qui le contiennent
  • suppression d'un noeud d'arbre
  • suppression du noeud
  • reindexation des noeuds qui le contenait comme parent
  • suppression des attached sur les objets contenus dans les attachments de ce noeud
  • reindexation des objets qui le contenait comme parent dans un champs attached
  • Specified by:
    delete in interface WikittySearchEngine
    Parameters:
    transaction -
    ids -
    Throws:
    WikittyException

    addTreeIndexField

    protected void addTreeIndexField(SolrResource solrResource,
                                     org.apache.solr.common.SolrInputDocument doc,
                                     Map<String,org.apache.solr.common.SolrDocument> tree)
    Modifie/Ajoute les champs specifique a l'indexation des arbres sur les TreeNode. On se base sur le fait que si un TreeNode est dans SolrResource il ne peut etre que dans deux etats. Soit il a ete reindexe pour les arbres et il a les champs d'indexation arbre. Soit il a pas encore ete reindexe pour les arbres et dans ce cas il ne doit pas avoir les champs d'indexation d'arbre. (il est donc interdit d'avoir des champs d'indexation arbre obsolete si le document est dans SolrResource)

    Parameters:
    doc - les documents representant le TreeNode
    tree - tous les autres noeuds d'arbre dont on pourrait avoir besoin pour l'indexation

    addTreeIndexField

    protected void addTreeIndexField(SolrResource solrResource,
                                     Map<String,org.apache.solr.common.SolrDocument> tree,
                                     AttachmentInTree attachmentInTree)
    Update attaced extra field on all objects passed in argument allAttachmentToIndex

    Parameters:
    solrResource - must contains reindexed TreeNode, that contains attachment
    allAttachmentToIndex - id of object to update
    attachmentRemovedInTree - index to remove
    attachmentAddedInTree - index to add

    findAllByCriteria

    public PagedResult<String> findAllByCriteria(WikittyTransaction transaction,
                                                 Criteria criteria)
    Specified by:
    findAllByCriteria in interface WikittySearchEngine

    findAllChildrenCount

    public TreeNodeResult<String> findAllChildrenCount(WikittyTransaction transaction,
                                                       String wikittyId,
                                                       int depth,
                                                       boolean count,
                                                       Criteria filter)
    Si l'argument n'est pas un TreeNode, une exception est levee

    Specified by:
    findAllChildrenCount in interface WikittySearchEngine
    Parameters:
    transaction -
    w - l'objet root du resultat
    depth - profondeur souhaite pour la recherche des fils
    count - vrai si l'on souhaite avoir le nombre d'attachment associe au noeud retourne
    filter - filtre utilise pour compter le nombre d'attachment
    Returns:

    addToIndexDocument

    protected void addToIndexDocument(org.apache.solr.common.SolrInputDocument doc,
                                      FieldType.TYPE type,
                                      String fqfieldName,
                                      Object fieldValue)

    addToIndexDocument

    protected void addToIndexDocument(org.apache.solr.common.SolrInputDocument doc,
                                      Wikitty w,
                                      String fqfieldName)
    modify one field in SolrInputDocument

    Parameters:
    doc - SolrInputDocument to modify
    w - wikitty used to find field value
    fqfieldName - field to index

    createIndexDocument

    protected org.apache.solr.common.SolrInputDocument createIndexDocument(Wikitty w)
    Create all index document to used to modify indexation. this method don't modify index. The document looks like : #id : wikittyId #extensions : extensionNames [fieldName] : [fieldValue] #null_field-[fieldname] : [true|false]

    Parameters:
    w - all wikitties object to index
    Returns:
    solrInputDocument used to modify index


    Copyright © 2009-2011 CodeLutin. All Rights Reserved.