具有不同分析器的多个字段的 Solr 默认搜索字段
Solr default search field for multiple fields which has different analyzers
我有一份文档,其中包含 title、stockCode、category 字段。
我有不同的字段类型(和分析链)。例如 title 有 EdgeNGram 2 到 20,category 有 EdgeNGram 3 到 10,范围不同,stockCode只有小写过滤器。
因此,我不想通过构建 title:sample 或 [=44= 这样的查询来搜索具有关键字“sample”的文档] 或 category:sample.
我想搜索“q=sample”。
我将我的字段复制到 text 但它不起作用。因为所有的领域分析都是一样的。但我不想将 stockCode 索引为 EdgeNGram 或任何其他过滤器。我想按照我的配置为我的字段编制索引,并且我想根据我的索引在这些字段上搜索关键字。
我已经研究了三天了,Solr 的文档有点差。
您可以使用 edismax
处理程序,因为这将允许您提供要查询的字段列表并自行提供查询。您还可以为每个字段赋予单独的权重,以便对它们进行不同的评分。
defType=edismax&q=sample&qf=title^10 stockCode category
.. 将在三个字段中的每一个中搜索 sample
,从而使 title
字段中的任何命中率提高 10 倍。
您可以在参考指南的 Searching
下 find the documentation about the edismax query parser。
我有一份文档,其中包含 title、stockCode、category 字段。
我有不同的字段类型(和分析链)。例如 title 有 EdgeNGram 2 到 20,category 有 EdgeNGram 3 到 10,范围不同,stockCode只有小写过滤器。
因此,我不想通过构建 title:sample 或 [=44= 这样的查询来搜索具有关键字“sample”的文档] 或 category:sample.
我想搜索“q=sample”。
我将我的字段复制到 text 但它不起作用。因为所有的领域分析都是一样的。但我不想将 stockCode 索引为 EdgeNGram 或任何其他过滤器。我想按照我的配置为我的字段编制索引,并且我想根据我的索引在这些字段上搜索关键字。
我已经研究了三天了,Solr 的文档有点差。
您可以使用 edismax
处理程序,因为这将允许您提供要查询的字段列表并自行提供查询。您还可以为每个字段赋予单独的权重,以便对它们进行不同的评分。
defType=edismax&q=sample&qf=title^10 stockCode category
.. 将在三个字段中的每一个中搜索 sample
,从而使 title
字段中的任何命中率提高 10 倍。
您可以在参考指南的 Searching
下 find the documentation about the edismax query parser。