Java 类org.apache.lucene.index.IndexReader.FieldOption 实例源码
项目:alfresco-repository
文件:IndexInfo.java
public int getNumberOfFields() throws IOException
{
IndexReader reader = getMainIndexReferenceCountingReadOnlyIndexReader();
try
{
return reader.getFieldNames(IndexReader.FieldOption.ALL).size();
}
finally
{
reader.close();
}
}
项目:alfresco-repository
文件:IndexInfo.java
public int getNumberOfIndexedFields() throws IOException
{
IndexReader reader = getMainIndexReferenceCountingReadOnlyIndexReader();
try
{
return reader.getFieldNames(IndexReader.FieldOption.INDEXED).size();
}
finally
{
reader.close();
}
}
项目:community-edition-old
文件:IndexInfo.java
public int getNumberOfFields() throws IOException
{
IndexReader reader = getMainIndexReferenceCountingReadOnlyIndexReader();
try
{
return reader.getFieldNames(IndexReader.FieldOption.ALL).size();
}
finally
{
reader.close();
}
}
项目:community-edition-old
文件:IndexInfo.java
public int getNumberOfIndexedFields() throws IOException
{
IndexReader reader = getMainIndexReferenceCountingReadOnlyIndexReader();
try
{
return reader.getFieldNames(IndexReader.FieldOption.INDEXED).size();
}
finally
{
reader.close();
}
}
项目:community-edition-old
文件:LegacyLuceneQueryParserAdaptor.java
@Override
public boolean sortFieldExists(String noLocalField)
{
for (Object current : lqp.getIndexReader().getFieldNames(FieldOption.INDEXED))
{
String currentString = (String) current;
if (currentString.equals(noLocalField))
{
return true;
}
}
return false;
}
项目:GeoprocessingAppstore
文件:TimeperiodClauseAdapter.java
/**
* Determine the index for the highest interval field within the Lucene index.
* <br/>e.g. timeperiod.l.7
* <br/>If the the document with the most intervals has 7, then 7 is the max.
* @throws DiscoveryException if there is a problem accessing the index
*/
private void determineMaxIntervalFieldName() throws DiscoveryException {
IndexSearcher searcher = null;
try {
searcher = this.getQueryAdapter().getIndexAdapter().newSearcher();
IndexReader reader = searcher.getIndexReader();
Collection<String> names = reader.getFieldNames(FieldOption.ALL);
String sPfx = this.baseFieldName.toLowerCase()+".l.";
int nBeginSubstring = sPfx.length();
int nMax = -1;
for (String name: names) {
String lc = name.toLowerCase();
if (lc.startsWith(sPfx)) {
LOGGER.finest("Found boundary field: "+name);
String s = lc.substring(nBeginSubstring);
try {
int n = Integer.valueOf(s);
if (n > nMax) {
nMax = n;
}
} catch (NumberFormatException nfe) {}
}
}
LOGGER.finest("MaxBndFieldIndex: "+nMax);
this.maxIntervalFieldName = nMax;
} catch (IOException e) {
LOGGER.log(Level.SEVERE,"Index issue.",e);
throw new DiscoveryException(e.toString(),e);
} finally {
this.getQueryAdapter().getIndexAdapter().closeSearcher(searcher);
}
}
项目:alfresco-repository
文件:ADMLuceneSearcherImpl.java
protected String findSortField(SearchParameters searchParameters, ClosingIndexSearcher searcher, String field, Locale sortLocale)
{
// find best field match
MLAnalysisMode analysisMode = getLuceneConfig().getDefaultMLSearchAnalysisMode();
HashSet<String> allowableLocales = new HashSet<String>();
for (Locale l : MLAnalysisMode.getLocales(analysisMode, sortLocale, false))
{
allowableLocales.add(l.toString());
}
String sortField = field;
for (Object current : searcher.getReader().getFieldNames(FieldOption.INDEXED))
{
String currentString = (String) current;
if (currentString.startsWith(field) && currentString.endsWith(".sort"))
{
String fieldLocale = currentString.substring(field.length() + 1, currentString.length() - 5);
if (allowableLocales.contains(fieldLocale))
{
if (fieldLocale.equals(sortLocale.toString()))
{
sortField = currentString;
break;
}
else if (sortLocale.toString().startsWith(fieldLocale))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
else if (fieldLocale.startsWith(sortLocale.toString()))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
}
}
}
return sortField;
}
项目:community-edition-old
文件:ADMLuceneSearcherImpl.java
protected String findSortField(SearchParameters searchParameters, ClosingIndexSearcher searcher, String field, Locale sortLocale)
{
// find best field match
MLAnalysisMode analysisMode = getLuceneConfig().getDefaultMLSearchAnalysisMode();
HashSet<String> allowableLocales = new HashSet<String>();
for (Locale l : MLAnalysisMode.getLocales(analysisMode, sortLocale, false))
{
allowableLocales.add(l.toString());
}
String sortField = field;
for (Object current : searcher.getReader().getFieldNames(FieldOption.INDEXED))
{
String currentString = (String) current;
if (currentString.startsWith(field) && currentString.endsWith(".sort"))
{
String fieldLocale = currentString.substring(field.length() + 1, currentString.length() - 5);
if (allowableLocales.contains(fieldLocale))
{
if (fieldLocale.equals(sortLocale.toString()))
{
sortField = currentString;
break;
}
else if (sortLocale.toString().startsWith(fieldLocale))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
else if (fieldLocale.startsWith(sortLocale.toString()))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
}
}
}
return sortField;
}
项目:community-edition-old
文件:LegacyLuceneQueryParserAdaptor.java
@Override
public String getSortField(String field) throws ParseException
{
Locale sortLocale;
List<Locale> locales = lqp.getSearchParameters().getLocales();
if (((locales == null) || (locales.size() == 0)))
{
locales = Collections.singletonList(I18NUtil.getLocale());
}
if (locales.size() > 1)
{
throw new ParseException("Order on text/mltext properties with more than one locale is not curently supported");
}
sortLocale = locales.get(0);
// find best field match
HashSet<String> allowableLocales = new HashSet<String>();
MLAnalysisMode analysisMode = lqp.getDefaultSearchMLAnalysisMode();
for (Locale l : MLAnalysisMode.getLocales(analysisMode, sortLocale, false))
{
allowableLocales.add(l.toString());
}
String sortField = field;
for (Object current : lqp.getIndexReader().getFieldNames(FieldOption.INDEXED))
{
String currentString = (String) current;
if (currentString.startsWith(field) && currentString.endsWith(QueryConstants.FIELD_SORT_SUFFIX))
{
String fieldLocale = currentString.substring(field.length() + 1, currentString.length() - QueryConstants.FIELD_SORT_SUFFIX.length());
if (allowableLocales.contains(fieldLocale))
{
if (fieldLocale.equals(sortLocale.toString()))
{
sortField = currentString;
break;
}
else if (sortLocale.toString().startsWith(fieldLocale))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
else if (fieldLocale.startsWith(sortLocale.toString()))
{
if (sortField.equals(field) || (currentString.length() < sortField.length()))
{
sortField = currentString;
}
}
}
}
}
field = sortField;
return field;
}