小编kat*_*tja的帖子

Solr 7.6.0:如何在一个查询中组合不同的 QueryParser?

我只想将块连接查询和主查询与 edismax-parser 结合起来,就像我为 solr < 7.2 所做的那样

berlin OR _query_:"{!parent which=type:book}page_content:berlin"
Run Code Online (Sandbox Code Playgroud)

但 edismax 不能再成为用于此目的的默认解析器(s. https://issues.apache.org/jira/browse/SOLR-11501

因此它可以与 lucene-QueryParser 一起使用来查询父级:

q={!parent which="type:book"}{!edismax qf='page_content' v='berlin'}
Run Code Online (Sandbox Code Playgroud)

它仍然适用于添加主查询,例如

q=title:berlin* AND {!parent which="type:book"}{!edismax qf='page_content' v='berlin'}
Run Code Online (Sandbox Code Playgroud)

但当我尝试时

q={!edismax qf='title' v='berlin'} OR {!parent which="type:book"}{!edismax qf='page_content' v='berlin'}
Run Code Online (Sandbox Code Playgroud)

仅评估查询的第一部分。

我的文档是:

<add>
  <doc>
    <field name="id">1</field>
    <field name="type">book</field>
    <field name="title">Book about Berlin</field>
    <field name="pages">
    <doc>
      <field name="id">11</field>
      <field name="type">page</field>
      <field name="page_content">berlin in winter</field>
    </doc>
    <doc>
      <field name="id">12</field>
      <field name="type">page</field>
      <field name="page_content">berlin in spring</field>
    </doc>
    <doc>
      <field name="id">13</field>
      <field name="type">page</field>
      <field name="page_content">berlin …
Run Code Online (Sandbox Code Playgroud)

solr edismax

5
推荐指数
1
解决办法
1328
查看次数

标签 统计

edismax ×1

solr ×1