当前位置: 首页 > 知识库问答 >
问题:

是否可以在SOLRJ/Solr中的筛选查询中使用多个单词?

薛寒
2023-03-14

我正在使用SOLRJ(与SOLR 7一起使用),我的索引为文档内容提供了一些名为content_eng、content_ita的字段...它还提供了一个包含文档完整路径的字段(由StandardTokenizerWordDelimiterGraphfilter处理)。

用户能够在content_xyz字段中进行搜索,这要归功于以下几行:final SolrQuery query=new SolrQuery();setQuery(searchedText);query.set(“QF”,searchFields);//searchFields是一个生成的字符串,类似于“content_eng content_ita”(用空格分隔的字段名)

现在,用户需要能够指定路径中包含的一些单词(即一些子目录)。所以我添加了一个filterQuery:

query.addFilterQuery(
                "full_path_split:" + searchedPath);

如果searchedPath只包含文档路径中包含的单个单词,则正确返回文档;但如果searchedPath包含路径中包含的多个单词,则不返回文档。总而言之,fq只有在searchedPath包含单个单词时才起作用。

任何帮助都很感激,

共有1个答案

汪思博
2023-03-14

您的怀疑是正确的-_text_:dir1部分来自您没有提供字段名,而是使用了默认的字段名。

您可以通过使用更通用的edismax(或更旧的dismax)解析器来解决这个问题,就像在主查询中使用qf时所做的那样:

fq={!type=edismax qf='full_path_split'}user dir1
 类似资料:
  • 我试图使用solrj构建一个solr查询。根据我对Solr-7.5.0的理解,solrj的所有库和依赖项都应该包含在我的Solr安装中。下面是我的/dist文件夹,后面是我的/dist/solrj-lib文件夹 现在,我的查询将被绑定到一个html post表单,但我想让solrj先工作。这是我全部的solrj 这将无法编译,因为它无法识别我的类(SolrClient、SolrQuery等)。我肯

  • 问题内容: 有什么办法可以让子查询在oracle db中返回多个列?(我知道此特定的sql会导致错误,但总的来说我想要的很好) 我想要这样的结果: 我知道可以通过联接解决此问题,但这不是我要的。 我的问题很简单,是否有办法从子查询中获取两个或多个值?也许一些解决方法使用双重?这样就没有实际的联接,但是每行都有一个新的子查询? 编辑:这是一个原则性问题。我知道,您可以使用join解决所有这些问题。您

  • 结果应该是满足这些条件的WWS个体。例如,当数字为4时,则结果应为WW1和WW2 我怀疑我的案例需要这样的东西,但它仍然不会返回结果:

  • -用户(顶级集合): ----user1(doc): --------pets(子集合): ----------pet1(doc) ----------pet2(doc) ---------pets(子集合): -----------pet3(doc) -------------pet4(doc) 如果我有一个IDS列表: 有没有一种方法可以做这样的事情,然后得到一个文档快照列表? 它适用于根集合

  • 问题内容: 我有2个实体:EntityA和EntityB。 它们是无关的,出于某些限制,我不能将它们放在继承树中。 但是我需要在同一个JPQL或HQL查询中混合包含两个实体的所有实例的List。JPA甚至直接使用Hibernate是否可以实现? 我需要这样的东西: 有什么提示吗? 问题答案: 好吧,我终于想通了。 足以使实体实现一个公共接口(甚至不需要在Hibernate上声明此接口)。 然后,可

  • 为了让我的用户执行更复杂的搜索,我正在使用Algolia。 我想将此jsonObject转换为与兼容的东西,以便能够使用 谢谢你!