/** * Checks the configuration to write.<p> * * @return true if configuration is valid, otherwise false */ private boolean checkWriteConfiguration() { if ((m_fieldconfiguration != null) || m_fieldconfiguration.getFields().isEmpty()) { for (CmsSearchField field : m_fieldconfiguration.getFields()) { if (field.getMappings().isEmpty()) { return false; } } return true; } return false; } }
/** * Adds a search field configuration to the search manager.<p> * * @param fieldConfiguration the search field configuration to add */ public void addFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration) { m_fieldConfigurations.put(fieldConfiguration.getName(), fieldConfiguration); if (fieldConfiguration.getFields().isEmpty()) { LOG.debug( Messages.get().getBundle().key( Messages.LOG_FIELD_CONFIGURATION_IS_EMPTY_1, fieldConfiguration.getName())); } }
/** * Adds fields.<p> * * @param fields the fields to add */ public void addFields(Collection<CmsSearchField> fields) { for (CmsSearchField field : fields) { if (!getFieldNames().contains(field.getName())) { addField(field); } } }
List<CmsProperty> propertiesSearched) { for (CmsSearchField field : getFields()) { document = appendFieldMapping( document, field,
CmsSetupXmlHelper.setValue(document, xpath + "/@" + I_CmsXmlConfiguration.A_CLASS, clazz.getName()); CmsSetupXmlHelper.setValue(document, xpath + "/" + I_CmsXmlConfiguration.N_NAME, fieldConf.getName()); CmsSetupXmlHelper.setValue( document, xpath + "/" + CmsSearchConfiguration.N_DESCRIPTION, fieldConf.getDescription()); for (CmsSearchField sField : fieldConf.getFields()) { CmsLuceneField field = (CmsLuceneField)sField; String fieldPath = xpath
/** * @see java.lang.Comparable#compareTo(java.lang.Object) */ public int compareTo(CmsSearchFieldConfiguration obj) { return m_name.compareTo(obj.getName()); }
/** * @see org.opencms.workplace.CmsWidgetDialog#actionCommit() */ @Override public void actionCommit() { List<Throwable> errors = new ArrayList<Throwable>(); try { // if new create it first boolean found = false; for (CmsSearchField field : m_fieldconfiguration.getFields()) { if (field.getName().equals(m_field.getName())) { found = true; } } if (!found) { m_fieldconfiguration.addField(m_field); } if (checkWriteConfiguration()) { writeConfiguration(); } } catch (Throwable t) { errors.add(t); } // set the list of errors to display when saving failed setCommitErrors(errors); }
try { config = itConfigs.next(); CmsListItem item = getList().newItem(config.getName()); item.set(LIST_COLUMN_NAME, config.getName()); item.set(LIST_COLUMN_DESCRIPTION, config.getDescription()); result.add(item); } catch (Throwable g) {
if (fieldConfiguration.getName().equals(CmsSearchFieldConfiguration.STR_STANDARD)) { throw new CmsIllegalStateException(Messages.get().container( Messages.ERR_INDEX_CONFIGURATION_DELETE_STANDARD_1, fieldConfiguration.getName())); idx = itIndexes.next(); refFieldConfig = idx.getFieldConfiguration(); if (refFieldConfig.equals(fieldConfiguration)) { referrers.add(idx); throw new CmsIllegalStateException(Messages.get().container( Messages.ERR_INDEX_CONFIGURATION_DELETE_2, fieldConfiguration.getName(), referrers.toString())); return m_fieldConfigurations.remove(fieldConfiguration.getName()) != null;
List<CmsProperty> properties = cms.readPropertyObjects(resource, false); Iterator<CmsSearchField> fieldConfigs = getFields().iterator(); while (fieldConfigs.hasNext()) { String parentFolders = getParentFolderTokens(resource.getRootPath()); field = new Field(CmsSearchField.FIELD_PARENT_FOLDERS, parentFolders, Field.Store.NO, Field.Index.ANALYZED);
CmsSearchFieldConfiguration result = new CmsSearchFieldConfiguration(); result.setName(STR_STANDARD); result.setDescription(STR_STANDARD_DESCRIPTION); null); field.addMapping(new CmsSearchFieldMapping(CmsSearchFieldMappingType.CONTENT, null)); result.addField(field); CmsSearchFieldMappingType.PROPERTY, CmsPropertyDefinition.PROPERTY_TITLE)); result.addField(field); CmsSearchFieldMappingType.PROPERTY, CmsPropertyDefinition.PROPERTY_TITLE)); result.addField(field); CmsSearchFieldMappingType.PROPERTY, CmsPropertyDefinition.PROPERTY_KEYWORDS)); result.addField(field); CmsSearchFieldMappingType.PROPERTY, CmsPropertyDefinition.PROPERTY_DESCRIPTION)); result.addField(field); CmsSearchFieldMappingType.PROPERTY, CmsPropertyDefinition.PROPERTY_DESCRIPTION)); result.addField(field);
/** * * @see org.opencms.search.fields.CmsSearchFieldConfiguration#addField(org.opencms.search.fields.CmsSearchField) */ @Override public void addField(CmsSearchField field) { super.addField(field); m_fieldAdded = true; }
/** * Generates a new lucene document instance from contents of the given resource for the provided index.<p> * * For container pages, we must not cache based on the container page content age, * since the content of the included elements may change any time. */ @Override public I_CmsSearchDocument createDocument(CmsObject cms, CmsResource resource, CmsSearchIndex index) throws CmsException { // extract the content from the resource I_CmsExtractionResult content = null; if (index.isExtractingContent()) { // do full text content extraction only if required try { content = extractContent(cms, resource, index); } catch (Exception e) { // text extraction failed for document - continue indexing meta information only LOG.error(Messages.get().getBundle().key(Messages.ERR_TEXT_EXTRACTION_1, resource.getRootPath()), e); } } // create the Lucene document according to the index field configuration return index.getFieldConfiguration().createDocument(cms, resource, index, content); }
/** * @see org.opencms.search.I_CmsSearchDocument#addPathField(java.lang.String) */ public void addPathField(String rootPath) { String parentFolders = CmsSearchFieldConfiguration.getParentFolderTokens(rootPath); Field field = new Field(CmsSearchField.FIELD_PARENT_FOLDERS, parentFolders, NOT_STORED_ANALYSED_TYPE); field.setBoost(0.0F); add(field); }
fieldConfigurationElement.addAttribute(A_CLASS, fieldConfiguration.getClass().getName()); fieldConfigurationElement.addElement(N_NAME).setText(fieldConfiguration.getName()); if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(fieldConfiguration.getDescription())) { fieldConfigurationElement.addElement(N_DESCRIPTION).setText(fieldConfiguration.getDescription()); Iterator fields = fieldConfiguration.getFields().iterator(); while (fields.hasNext()) { CmsSearchField field = (CmsSearchField)fields.next();
/** * Adds a search field configuration to the search manager.<p> * * @param fieldConfiguration the search field configuration to add */ public void addFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration) { m_fieldConfigurations.put(fieldConfiguration.getName(), fieldConfiguration); }
if (fieldConfiguration.getName().equals(CmsSearchFieldConfiguration.STR_STANDARD)) { throw new CmsIllegalStateException( Messages.get().container( Messages.ERR_INDEX_CONFIGURATION_DELETE_STANDARD_1, fieldConfiguration.getName())); idx = itIndexes.next(); refFieldConfig = idx.getFieldConfiguration(); if (refFieldConfig.equals(fieldConfiguration)) { referrers.add(idx); Messages.get().container( Messages.ERR_INDEX_CONFIGURATION_DELETE_2, fieldConfiguration.getName(), referrers.toString())); return m_fieldConfigurations.remove(fieldConfiguration.getName()) != null;
return index.getFieldConfiguration().createDocument(cms, resource, index, content);
fieldConfigurationElement.addAttribute(A_CLASS, fieldConfiguration.getClass().getName()); fieldConfigurationElement.addElement(N_NAME).setText(fieldConfiguration.getName()); if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(fieldConfiguration.getDescription())) { fieldConfigurationElement.addElement(N_DESCRIPTION).setText(fieldConfiguration.getDescription()); for (CmsSearchField sfield : fieldConfiguration.getFields()) { if (sfield instanceof CmsLuceneField) { CmsLuceneField field = (CmsLuceneField)sfield;
/** * Returns the list of searchable fields used in the workplace search index.<p> * * @return the list of searchable fields used in the workplace search index */ public List<CmsLuceneField> getFields() { CmsSearchIndex index = getIndex(); List<CmsLuceneField> result = new ArrayList<CmsLuceneField>(); Iterator<CmsSearchField> i = index.getFieldConfiguration().getFields().iterator(); while (i.hasNext()) { CmsLuceneField field = (CmsLuceneField)i.next(); if (field.isIndexed() && field.isDisplayed()) { // only include indexed (ie. searchable) fields result.add(field); } } return result; }