本文整理了Java中org.apache.solr.search.QueryParsing
类的一些代码示例,展示了QueryParsing
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryParsing
类的具体详情如下:
包路径:org.apache.solr.search.QueryParsing
类名称:QueryParsing
[英]Collection of static utilities useful for query parsing.
[中]用于查询解析的静态实用程序集合。
代码示例来源:origin: tjake/Solandra
Query q = QueryParsing.parseQuery(cmd.query, schema);
long total = writer.deleteDocuments(subIndex, q, false);
commit(subIndex, true);
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* Builds a list of String which are stringified versions of a list of Queries
*/
public static List
List
for (Query q : queries) {
out.add(QueryParsing.toString(q, schema));
}
return out;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* Executes a basic query in lucene syntax
*/
public static DocList doSimpleQuery(String sreq,
SolrIndexSearcher searcher,
IndexSchema schema,
int start, int limit) throws IOException {
List
String qs = commands.size() >= 1 ? commands.get(0) : "";
Query query = QueryParsing.parseQuery(qs, schema);
// If the first non-query, non-filter command is a simple sort on an indexed field, then
// we can use the Lucene sort ability.
Sort sort = null;
if (commands.size() >= 2) {
sort = QueryParsing.parseSort(commands.get(1), schema);
}
DocList results = searcher.getDocList(query,(DocSet)null, sort, start, limit);
return results;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
TermQuery q = (TermQuery)query;
Term t = q.getTerm();
FieldType ft = writeFieldName(t.field(), schema, out, flags);
writeFieldVal(t.text(), ft, out, flags);
} else if (query instanceof TermRangeQuery) {
TermRangeQuery q = (TermRangeQuery)query;
String fname = q.getField();
FieldType ft = writeFieldName(fname, schema, out, flags);
out.append( q.includesLower() ? '[' : '{' );
String lt = q.getLowerTerm();
out.append('*');
} else {
writeFieldVal(lt, ft, out, flags);
out.append('*');
} else {
writeFieldVal(ut, ft, out, flags);
NumericRangeQuery q = (NumericRangeQuery)query;
String fname = q.getField();
FieldType ft = writeFieldName(fname, schema, out, flags);
out.append( q.includesMin() ? '[' : '{' );
Number lt = q.getMin();
toString(subQuery, schema, out, flags);
PrefixQuery q = (PrefixQuery)query;
Term prefix = q.getPrefix();
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
int matchOffset = params.getInt( MoreLikeThisParams.MATCH_OFFSET, 0 );
Query query = QueryParsing.parseQuery(q, params.get(CommonParams.DF), params, req.getSchema());
DocList match = searcher.getDocList(query, null, null, matchOffset, 1, flags ); // only get the first one...
if( includeMatch ) {
List
for (Query fq : filters) {
fqs.add(QueryParsing.toString(fq, req.getSchema()));
代码示例来源:origin: flaxsearch/BioSolr
private void addTreeFieldsToFacets(ResponseBuilder rb) throws SyntaxError {
String[] ftFields = rb.req.getParams().getParams(FACET_TREE_FIELD);
if (ftFields == null || ftFields.length == 0) {
LOGGER.warn("No facet tree fields specified - ignoring facet trees");
} else {
// Take a modifiable copy of the incoming params
ModifiableSolrParams params = new ModifiableSolrParams(rb.req.getParams());
// Put the original facet fields (if any) into a Set
Set
if (params.getParams(FacetParams.FACET_FIELD) != null) {
facetFields.addAll(Arrays.asList(params.getParams(FacetParams.FACET_FIELD)));
}
// Add the facet tree fields
for (String ftField : ftFields) {
// Parse the facet tree field, so we only add the field value,
// rather than the whole string (ensure it's unique)
facetFields.add(QueryParsing.getLocalParams(ftField, params).get(QueryParsing.V));
}
// Add the (possibly) new facet fields
params.set(FacetParams.FACET_FIELD, facetFields.toArray(new String[facetFields.size()]));
// Re-set the params in the request
rb.req.setParams(params);
}
}
代码示例来源:origin: rdelbru/SIREn
/**
* Uses {@link SolrPluginUtils#parseFieldBoosts(String)} with the 'qf'
* parameter. Falls back to the 'df' parameter or
* {@link org.apache.solr.schema.IndexSchema#getDefaultSearchFieldName()}.
*/
public static Map
throws ParseException {
final Map
if (queryFields.isEmpty()) {
final String df = QueryParsing.getDefaultField(indexSchema, solrParams.get(CommonParams.DF));
if (df == null) {
throw new ParseException("Neither "+SirenParams.QF+", "+CommonParams.DF +", nor the default search field are present.");
}
queryFields.put(df, 1.0f);
}
checkFieldTypes(indexSchema, queryFields);
return queryFields;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
@Override
public SortSpec getSort(boolean useGlobal) throws ParseException {
SortSpec sort = super.getSort(useGlobal);
if (sortStr != null && sortStr.length()>0 && sort.getSort()==null) {
Sort oldSort = QueryParsing.parseSort(sortStr, getReq().getSchema());
if( oldSort != null ) {
sort.sort = oldSort;
}
}
return sort;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* Given a string containing functions with optional boosts, returns
* an array of Queries representing those functions with the specified
* boosts.
*
* NOTE: intra-function whitespace is not allowed.
*
* @see #parseFieldBoosts
* @deprecated
*/
public static List
throws ParseException {
Map
List
for (String f : ff.keySet()) {
Query fq = QueryParsing.parseFunction(f, s);
Float b = ff.get(f);
if (null != b) {
fq.setBoost(b);
}
funcs.add(fq);
}
return funcs;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* "foo" returns null
* "{!prefix f=myfield}yes" returns type="prefix",f="myfield",v="yes"
* "{!prefix f=myfield v=$p}" returns type="prefix",f="myfield",v=params.get("p")
*/
public static SolrParams getLocalParams(String txt, SolrParams params) throws ParseException {
if (txt==null || !txt.startsWith(LOCALPARAM_START)) {
return null;
}
Map
int start = QueryParsing.parseLocalParams(txt, 0, localParams, params);
String val;
if (start >= txt.length()) {
// if the rest of the string is empty, check for "v" to provide the value
val = localParams.get(V);
val = val==null ? "" : val;
} else {
val = txt.substring(start);
}
localParams.put(V,val);
return new MapSolrParams(localParams);
}
代码示例来源:origin: spaziocodice/SolRDF
SortSpec sortSpec() throws SyntaxError {
if (sortSpec == null) {
sortSpec = qParser != null
? qParser.getSort(true)
: QueryParsing.parseSortSpec("id asc", request);
sortSpec.setOffset(0);
}
return sortSpec;
}
代码示例来源:origin: codice/ddf
@Override
public Query parse() throws SyntaxError {
String qstr = getString();
String defaultField = getParam(CommonParams.DF);
XpathQueryParser queryParser = new XpathQueryParser(this, defaultField);
queryParser.setDefaultOperator(QueryParsing.parseOP(getParam(QueryParsing.OP)));
return queryParser.parse(qstr);
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* Formats a Query for debugging, using the IndexSchema to make
* complex field types readable.
*
*
* The benefit of using this method instead of calling
* Query.toString
directly is that it knows about the data
* types of each field, so any field which is encoded in a particularly
* complex way is still readable. The downside is that it only knows
* about built in Query types, and will not be able to format custom
* Query classes.
*
*/
public static String toString(Query query, IndexSchema schema) {
try {
StringBuilder sb = new StringBuilder();
toString(query, schema, sb, 0);
return sb.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
query = QueryParsing.parseQuery(qs, req.getSchema());
sort = QueryParsing.parseSort(commands.get(1), req.getSchema());
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
public FacetBase(ResponseBuilder rb, String facetType, String facetStr) {
this.facetType = facetType;
this.facetStr = facetStr;
try {
this.localParams = QueryParsing.getLocalParams(facetStr, rb.req.getParams());
} catch (ParseException e) {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
}
this.facetOn = facetStr;
this.key = facetStr;
if (localParams != null) {
// remove local params unless it's a query
if (!facetType.equals(FacetParams.FACET_QUERY)) {
facetOn = localParams.get(CommonParams.VALUE);
key = facetOn;
}
key = localParams.get(CommonParams.OUTPUT_KEY, key);
}
}
代码示例来源:origin: sirensolutions/siren
/**
* Uses {@link SolrPluginUtils#parseFieldBoosts(String)} with the 'qf'
* parameter. Falls back to the 'df' parameter or
* {@link org.apache.solr.schema.IndexSchema#getDefaultSearchFieldName()}.
*/
public static Map
throws SyntaxError {
final Map
if (queryFields.isEmpty()) {
final String df = QueryParsing.getDefaultField(indexSchema, solrParams.get(CommonParams.DF));
if (df == null) {
throw new SyntaxError("Neither "+SirenParams.QF+", "+CommonParams.DF +", nor the default search field are present.");
}
queryFields.put(df, 1.0f);
}
checkFieldTypes(indexSchema, queryFields);
return queryFields;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
/**
* Determines the correct Sort based on the request parameter "sort"
*
* @return null if no sort is specified.
*/
public static Sort getSort(SolrQueryRequest req) {
String sort = req.getParams().get(org.apache.solr.common.params.CommonParams.SORT);
if (null == sort || sort.equals("")) {
return null;
}
SolrException sortE = null;
Sort ss = null;
try {
ss = QueryParsing.parseSort(sort, req.getSchema());
} catch (SolrException e) {
sortE = e;
}
if ((null == ss) || (null != sortE)) {
/* we definitely had some sort of sort string from the user,
* but no SortSpec came out of it
*/
SolrCore.log.warn("Invalid sort \""+sort+"\" was specified, ignoring", sortE);
return null;
}
return ss;
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
protected Query getFieldQuery(String field, String queryText) throws ParseException {
checkNullField(field);
// intercept magic field name of "_" to use as a hook for our
// own functions.
if (field.charAt(0) == '_') {
if ("_val_".equals(field)) {
if (parser==null) {
return QueryParsing.parseFunction(queryText, schema);
} else {
QParser nested = parser.subQuery(queryText, "func");
return nested.getQuery();
}
} else if ("_query_".equals(field) && parser != null) {
return parser.subQuery(queryText, null).getQuery();
}
}
// default to a normal field query
return super.getFieldQuery(field, queryText);
}
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
int end = QueryParsing.parseLocalParams(qs, start, nestedLocalParams, getParams());
代码示例来源:origin: org.dspace.dependencies.solr/dspace-solr-core
public void addDebugInfo(NamedList debugInfo) {
super.addDebugInfo(debugInfo);
debugInfo.add("altquerystring", altUserQuery);
if (null != boostQueries) {
debugInfo.add("boost_queries", boostParams);
debugInfo.add("parsed_boost_queries",
QueryParsing.toString(boostQueries, req.getSchema()));
}
debugInfo.add("boostfuncs", req.getParams().getParams(DisMaxParams.BF));
}
}