在 Solr 中通过多词查询搜索文档

Search documents by multiple words query in Solr

我有文件

[
  { "id": 1, "title": "next notebook" },
  { "id": 2, "title": "next thing" }
]

title字段类型是

<fieldType name="managed_en" positionIncrementGap="100" class="solr.TextField">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.ManagedStopFilterFactory" managed="english" />
    <filter class="solr.ManagedSynonymGraphFilterFactory" managed="english" />
    <filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.ManagedStopFilterFactory" managed="english" />
    <filter class="solr.ManagedSynonymGraphFilterFactory" managed="english" />
  </analyzer>
</fieldType>

我正在尝试搜索 next thing,所以请求是 /select?q=title%20next%20thing

我希望带有 id: 2 的文档会在最前面,但顺序与添加顺序相同,分数也相同 0.3979403

查询应该如何实现,如果标题中查询的单词多于文档应该在顶部?

此查询正在默认搜索字段 (df) 中搜索标题、下一个和事物 %20 是一个 space 字符。

q=title%20next%20thing

尝试类似 q=next%20thing&df=title

您的查询在默认字段中被视为 OR

q:next thing

正如您在评论中提到的,您必须指定字段。否则,您可以提供应在其中查找搜索词的默认字段列表。

q=title:next thing

两种方式都是正确的。如果你有一个特定的领域要搜索,你应该提到它。否则要搜索默认字段,您可以将名称保留为可选。