热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

org.apache.solr.search.QueryParsing类的使用及代码示例

本文整理了Java中org.apache.solr.search.QueryParsing类的一些代码示例,展示了QueryParsing类的

本文整理了Java中org.apache.solr.search.QueryParsing类的一些代码示例,展示了QueryParsing类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryParsing类的具体详情如下:
包路径:org.apache.solr.search.QueryParsing
类名称: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 toString(List queries, IndexSchema schema) {
List out = new ArrayList(queries.size());
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 commands = StrUtils.splitSmart(sreq,';');
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 fqs = new ArrayList(filters.size());
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 facetFields = new LinkedHashSet<>();
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 parseQueryFields(final IndexSchema indexSchema, final SolrParams solrParams)
throws ParseException {
final Map queryFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(SirenParams.QF));
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 parseFuncs(IndexSchema s, String in)
throws ParseException {
Map ff = parseFieldBoosts(in);
List funcs = new ArrayList(ff.keySet().size());
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 localParams = new HashMap();
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 parseQueryFields(final IndexSchema indexSchema, final SolrParams solrParams)
throws SyntaxError {
final Map queryFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(SirenParams.QF));
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));
}
}

推荐阅读
  • Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词
    一、Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer1.新建一个测试Lucene提供的分词器的maven项目LuceneAnal ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 本文整理了Java中proj.zoie.impl.indexing.ZoieConfig.setMaxBatchSize()方法的一些代码示例,展示了Zoi ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 标题: ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了Nutch相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
author-avatar
may
额,有趣的灵魂终会相遇
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有