【问题标题】:Solr: How to pass a sequence of terms to a field as single query stringSolr:如何将一系列术语作为单个查询字符串传递给字段
【发布时间】:2017-04-03 16:57:30
【问题描述】:

我有一个字段类型定义如下:

<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="2"/>
</analyzer>
<analyzer type="query">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
  <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="2"/>
</analyzer>

我想查询这个类型的一个字段(名为passage_body)如下(例如):

q=passage_body:(DPGC召集人任期)

问题是在索引该字段中的文本时,分析器工作得很好。但是,在查询时,如果我将 debugQuery 参数设置为 true,我可以看到该字段未按预期进行分析(未形成带状疱疹)。这是调试输出:

<str name="rawquerystring">passage_body:(the term of dpgc convener)</str><str name="querystring">passage_body:(the term of dpgc convener)</str><str name="parsedquery">passage_body:term passage_body:dpgc passage_body:convener</str><str name="parsedquery_toString">passage_body:term passage_body:dpgc passage_body:convener</str>

当我在 Solr admin 中分析查询时,输出符合预期。 我什至尝试将 Standard Query Parser 的“sow”查询参数设置为 false,但即使这样也没有用。

简而言之,这是我的最终查询:

http://localhost:8983/solr/mnitdocs/select?q=passage_body:(the term of dpgc convene)&sow=false&debugQuery=true

简而言之,我想将查询的带状疱疹与通道主体的带状疱疹相匹配。 请提出方法。由于我是 Solr 的新手,因此也欢迎其他建议。

我正在使用 Solr 5.3.1。

【问题讨论】:

  • 只是一个猜测,但您是否尝试过对整个 q= 有效负载进行 url 编码:passage_body%3A(the%20term%20of%20dpgc%20convene)
  • 你能发布一个你希望如何解析查询字符串的例子吗?
  • 我希望将查询字符串作为“DPGC 召集人的任期”传递。我使用引号来表示它是单个字符串,而不是短语。现在分析器应该处理这个字符串(标记,制作带状疱疹)。

标签: solr


【解决方案1】:

我发现了问题所在。将查询参数“sow”设置为 false 可以正常工作。只是它仅在最新版本的 solr(6.5.0) 中可用。所以我切换到 Solr 6.5.0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多