com.jalios.jcms.policy
Interface LuceneSearchEnginePolicyFilter

All Superinterfaces:
Comparable, PluginComponent, PolicyFilter
All Known Implementing Classes:
BasicLuceneSearchEnginePolicyFilter

public interface LuceneSearchEnginePolicyFilter
extends PolicyFilter

This class allow developers to put hooks to change lucene search engine mechanism behaviour. To get more information about the current request in hooks, the method Channel#getCurrentJcmsContext() must be called.

Since:
jcms-5.7.0
Version:
$Revision: 28847 $
Author:
Jean-Philippe Encausse

Field Summary
static String REVISION
           
 
Method Summary
 void filterCategoryDocument(org.apache.lucene.document.Document doc, Category cat, String lang)
          This method is called when the given Category is being index in the given language, just before writing the Document into the index.
 void filterFileDocument(org.apache.lucene.document.Document doc, File file)
          This method is called when the given File is being index, just before writing the Document into the index.
 void filterMemberDocument(org.apache.lucene.document.Document doc, Member mbr)
          This method is called when the given Member is being index, just before writing the Document into the index.
 void filterPublicationDocument(org.apache.lucene.document.Document doc, Publication pub, String lang)
          This method is called when the given Publication is being index in the given language, just before writing the Document into the index.
 org.apache.lucene.analysis.Analyzer getAnalyzer(String lang, boolean isIndexing, org.apache.lucene.analysis.Analyzer analyzer)
          Return the Lucene Analyzer to use for a given language.
 float getCategoryBoost(Category cat, String lang, float jcms)
          Return the boost that should be apply to the lucene Document that will be created for the given Category.
 float getFieldBoost(Category cat, String lang, String fieldName, String fieldValue, float jcms)
          Return the boost that should be apply to the lucene Field that will be created for the given Category's field.
 float getFieldBoost(Publication pub, String lang, String fieldName, String fieldValue, float jcms)
          Return the boost that should be apply to the lucene Field that will be created for the given Publication's field.
 String[] getLanguageStopWords(String lang, String[] jcms)
           
 HashSet<String> getLanguageStopWordsSet(String lang, HashSet<String> jcms)
           
 float getPublicationBoost(Publication pub, String lang, float jcms)
          Return the boost that should be apply to the lucene Document that will be created for the given Publication.
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface com.jalios.jcms.plugin.PluginComponent
init
 

Field Detail

REVISION

static final String REVISION
See Also:
Constant Field Values
Method Detail

getLanguageStopWords

String[] getLanguageStopWords(String lang,
                              String[] jcms)

getLanguageStopWordsSet

HashSet<String> getLanguageStopWordsSet(String lang,
                                        HashSet<String> jcms)

getAnalyzer

org.apache.lucene.analysis.Analyzer getAnalyzer(String lang,
                                                boolean isIndexing,
                                                org.apache.lucene.analysis.Analyzer analyzer)
Return the Lucene Analyzer to use for a given language.

Parameters:
lang - the ISO-639 code of the language analyzed
isIndexing - true if the returned anallyzer is to be used for indexing, false in any other case (e.g. during search etc..) You may want to use this parameter to change the behaviour of your analyzer during those case (for example, synonym analyzer must generate synonyms only when indexing, not during search).
analyzer - the internal Analyzer, created by JCMS, that should be returned if you do not want to return a customize analyzer
Returns:
a new Analyzer

getPublicationBoost

float getPublicationBoost(Publication pub,
                          String lang,
                          float jcms)
Return the boost that should be apply to the lucene Document that will be created for the given Publication.
Default implementation alway return 1.0f.

A Document boost factor implicitly sets the starting boost of all fields to the specified value, Field-specific boosts are multiplied by the starting value, giving the final value of the field boost factor.

Parameters:
pub - the Publication indexed
lang - the indexed language
jcms - the jcms internal boost
Returns:
a lucene boost value for the specified publication

getFieldBoost

float getFieldBoost(Publication pub,
                    String lang,
                    String fieldName,
                    String fieldValue,
                    float jcms)
Return the boost that should be apply to the lucene Field that will be created for the given Publication's field.
Default implementation:
  • TITLE_FIELD: 1.2f
  • ABSTRACT_FIELD: 1.1f
  • default: 1.0f
  • Note: Due to lucene default behavior, terms of shorter field (e.g. title) are naturally given more weight than terms in the document.
    Note: for Publication's field of type array (int[], long[], String[], etc) this method will only be called once. As we are creating appendable lucene Field in those case, calling the boost only for the first creationg prevent boost to multiplied as many times as there elements in the array.

    Parameters:
    pub - the publication indexed
    lang - the indexed language
    fieldName - the indexed field's name
    fieldValue - the String value of the indexed field)
    jcms - the jcms internal boost
    Returns:
    a float noting the boost value of the field

    getCategoryBoost

    float getCategoryBoost(Category cat,
                           String lang,
                           float jcms)
    Return the boost that should be apply to the lucene Document that will be created for the given Category.
    Default implementation alway return 1.0f.

    Parameters:
    cat - the Category indexed
    lang - the indexed language
    jcms - the jcms internal boost
    Returns:
    a lucene boost value for the specified category

    getFieldBoost

    float getFieldBoost(Category cat,
                        String lang,
                        String fieldName,
                        String fieldValue,
                        float jcms)
    Return the boost that should be apply to the lucene Field that will be created for the given Category's field.
    Default implementation:
  • TITLE_FIELD: 1.2f
  • SYNONYMS_FIELD: 1.1f
  • default: 1.0f
  • Note: for Category's field of type array (int[], long[], String[], etc) this method will only be called once. As we are creating appendable lucene Field in those case, calling the boost only for the first creationg prevent boost to multiplied as many times as there elements in the array (Synonyms being a good examples).

    Parameters:
    cat - the Category indexed
    lang - the indexed language
    fieldName - the indexed field's name
    fieldValue - the String value of the indexed field)
    jcms - the jcms internal boost
    Returns:
    a float noting the boost value of the field

    filterPublicationDocument

    void filterPublicationDocument(org.apache.lucene.document.Document doc,
                                   Publication pub,
                                   String lang)
    This method is called when the given Publication is being index in the given language, just before writing the Document into the index. You can use this hook to modify the Document as you wish by adding or removing field.

    Parameters:
    doc - the lucene Document that was created by JCMS search engine
    pub - the Publication being indexed
    lang - the indexed language
    See Also:
    LucenePublicationSearchEngine

    filterCategoryDocument

    void filterCategoryDocument(org.apache.lucene.document.Document doc,
                                Category cat,
                                String lang)
    This method is called when the given Category is being index in the given language, just before writing the Document into the index. You can use this hook to modify the Document as you wish by adding or removing field.

    Parameters:
    doc - the lucene Document that was created by JCMS search engine
    cat - the Category being indexed
    lang - the indexed language
    See Also:
    LuceneCategorySearchEngine

    filterFileDocument

    void filterFileDocument(org.apache.lucene.document.Document doc,
                            File file)
    This method is called when the given File is being index, just before writing the Document into the index. You can use this hook to modify the Document as you wish by adding or removing field.

    Parameters:
    doc - the lucene Document that was created by JCMS search engine
    file - the File being indexed
    See Also:
    LuceneFileSearchEngine

    filterMemberDocument

    void filterMemberDocument(org.apache.lucene.document.Document doc,
                              Member mbr)
    This method is called when the given Member is being index, just before writing the Document into the index. You can use this hook to modify the Document as you wish by adding or removing field.

    Parameters:
    doc - the lucene Document that was created by JCMS search engine
    mbr - the Member being indexed
    Since:
    jcms-7.0.0
    See Also:
    LuceneFileSearchEngine


    Copyright © 2001-2010 Jalios SA. All Rights Reserved.