在 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
两种方式都是正确的。如果你有一个特定的领域要搜索,你应该提到它。否则要搜索默认字段,您可以将名称保留为可选。
我有文件
[
{ "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
两种方式都是正确的。如果你有一个特定的领域要搜索,你应该提到它。否则要搜索默认字段,您可以将名称保留为可选。