Package de.innovationgate.wga.common.beans

Examples of de.innovationgate.wga.common.beans.LuceneIndexItemRule


            return null;
        }
       
        // create text to analyze
        LuceneConfiguration config = getwgacore().getLuceneManager().retrieveLuceneConfig(content().getDatabase().getDbReference());
        LuceneIndexItemRule rule = config.getMatchingItemRule(name);
        String analyzeText = rule.parseItemValue(originalText);

        // create tokenstream
        TokenStream tokenStream = getwgacore().getLuceneManager().createTokenStream(analyzeText, content());
       
        // create fragmenter and set fragmentsize to itemText.length to ensure only one fragments with the whole itemText is returned       
View Full Code Here


            WGUtils.getOrCreateElement(luceneDBConfig, "itemrules");
            //check for default rule
            ArrayList rules = (ArrayList)LuceneIndexItemRule.getRules(luceneDBConfig);
            if (rules.size() > 0) {
                //check if last rule is defaultrule
                LuceneIndexItemRule checkDefaultRule = (LuceneIndexItemRule) rules.get(rules.size()-1);
                if (!checkDefaultRule.getItemExpression().equals(LuceneIndexItemRule.EXPRESSION_WILDCARD)) {
                    //last rule is no defaultRule, create defaultRule
                    LuceneIndexItemRule.addDefaultRule(luceneDBConfig);
                }
            } else {
                //no rules present, create defaultRule
                LuceneIndexItemRule.addDefaultRule(luceneDBConfig);
            }
            // lucene file rules
            WGUtils.getOrCreateElement(luceneDBConfig, "filerules");
            //check for default filerule
            rules = (ArrayList)LuceneIndexFileRule.getRules(luceneDBConfig);
            if (rules.size() > 0) {
                //check if last rule is defaultrule
                LuceneIndexFileRule checkDefaultRule = (LuceneIndexFileRule) rules.get(rules.size()-1);
                if (!checkDefaultRule.isDefaultRule()) {
                    //last rule is no defaultRule, create defaultRule
                    LuceneIndexFileRule.addDefaultRule(luceneDBConfig);
                }
            } else {
                //no rules present, create defaultRule
View Full Code Here

            // index content items
            Iterator itemNames = content.getItemNames().iterator();
            while (itemNames.hasNext()) {
                // retrieve configured indexing rule
                String itemName = (String) itemNames.next();               
                LuceneIndexItemRule rule = retrieveItemRule(db, itemName);
               
                if (rule == null) {
                    throw new WGConfigurationException("No lucene configuration available for database " + db.getDbReference() +". The database may have been removed from lucene index.");
                }
               
                if (rule.getIndexType().equals(LuceneIndexItemRule.INDEX_TYPE_FULLTEXT)) {
                    addToFulltextIndex(content, document, itemName, rule);
                }
                if (rule.getIndexType().equals(LuceneIndexItemRule.INDEX_TYPE_KEYWORD)) {
                    addToKeywordIndex(content, document, itemName, rule);
                }
               
                // add item as sort field if configured
                if (rule.isSortable()) {
                    addForSorting(content, document, itemName, rule);
                }
            }
           
            // index content relations
            Iterator<String> relationNames = content.getRelationNames().iterator();
            while (relationNames.hasNext()) {
              String relationName = relationNames.next();
              WGRelationData data = content.getRelationData(relationName);
              if (data != null) {
                String luceneItemName = RELATION_PREFIX + relationName.toLowerCase();
                addKeyword(document, luceneItemName, data.getTargetStructkey().toString() + "." + data.getTargetLanguage());
                addSortField(document, luceneItemName, data.getTargetStructkey().toString() + "." + data.getTargetLanguage())
              }             
            }
           
            // index file attachments
            List filenames = content.getFileNames();
            if (filenames != null) {
                Iterator it = filenames.iterator();
                while (it.hasNext()) {
                    String filename = (String) it.next();
                   
                    if (filename.startsWith(".")) {
                      // this indicates normally a hidden file so skip it
                      continue;
                    }
                   
                    // retrieve file rule
                    LuceneIndexFileRule rule = retrieveFileRule(db, filename);
                    if (rule.getFileSizeLimit() == LuceneIndexFileRule.FILESIZELIMIT_INDEX_NONE) {
                        // skip file
                        continue;
                    }
                    if (rule.getFileSizeLimit() != LuceneIndexFileRule.FILESIZELIMIT_INDEX_ALL) {
                      int filesize = content.getFileSize(filename);
                        // check filesize                   
                        if (filesize > (rule.getFileSizeLimit() * 1024) || filesize == -1) {
                            _core.getLog().info("Skipping file " + filename + " of content " + content.getContentKey().toString() + " - filesizelimit " + rule.getFileSizeLimit() + " kb exceeded.");
                            // file not found or filesize exceeded limit - skip file
                            continue;
                        }
                    }
                    // try to retrieve filehandler
                    FileHandler handler = retrieveFileHandler(filename);
                    if (handler == null) {
                        _core.getLog().info("No filehandler found for file " + filename + " of content " + content.getContentKey().toString() + " from db " + db.getDbReference() + ".");
                        continue;
                    } else {
                        // parse text from file
                        InputStream is = content.getFileData(filename);
                        if (is != null) {
                            String text = null;
                            try {
                                handler.parse(is);
                                text = handler.getText();
                            } catch (FileHandlerException e) {
                                _core.getLog().error("Unable to extract text from file '" + filename + "' of content '" + content.getContentKey().toString() + "' using filehandler '" + handler.getClass().getName() + "'.", e);
                            }
                            if (text != null) {
                                // index file text
                                _core.getLog().info("Indexing file " +filename + " of content " + content.getContentKey().toString() + " from db " + db.getDbReference() + ".");
                                addUnStored(document, INDEXFIELD_ALLATTACHMENTS, text, rule.getBoost());
                               
                                if (rule.isIncludedInAllContent()) {
                                    addUnStored(document, INDEXFIELD_ALLCONTENT, text, rule.getBoost());
                                }
                            }
                           
                        }
                           
View Full Code Here

        while (searchDBKeys.hasNext()) {
            String dbKey = (String) searchDBKeys.next();
            if (dbKey != null) {
                LuceneConfiguration config = (LuceneConfiguration) _configs.get(dbKey);
                if (config != null) {
                    LuceneIndexItemRule rule = config.getMatchingItemRule(field);
                    if (rule.getIndexType().equals(LuceneIndexItemRule.INDEX_TYPE_KEYWORD)) {
                        return true;
                    }
                }
            }
        }
View Full Code Here

TOP

Related Classes of de.innovationgate.wga.common.beans.LuceneIndexItemRule

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.