当前位置: 首页 > 面试题库 >

基于Solr规则的提升

阎安邦
2023-03-14
问题内容

我正在使用 Solr-5.0.0 。我正在寻找一个领域product_name。我需要添加一些规则以获得相关结果。

  1. 如果我搜索一个单词,如果存在完全匹配,则应排在最前面。例如:如果我搜索laptop,它应该首先返回product_name笔记本电脑 完全相同的内容。

  2. 如果我搜索多个单词,则应遵循规则1.单词长度最小的单词排在最前面。例如:如果我进行搜索dell laptop,它应该比 Dell inspiron笔记本 电脑 先送回 Dell笔记本 电脑

  3. 如果我搜索单词,则不应返回包含withwithout单词的结果。例如:在搜索中laptop bag,它不应该先给 带包的 Dell笔记本电脑没有带包 结果的 Dell笔记本电脑

如何在查询时实现这些基于规则的搜索相关结果?

我的应用程序是用Java编写的,因此赞赏Java的回答。


问题答案:

首先,您应该使用dismax或edismax查询解析器,而不要使用默认解析器(lucene)。

然后,您可以使用不同的参数来提高相关性:

  1. :使用qf增强您的product_name字段。
  2. :使用pf增强您的product_name字段,其中q参数中的所有术语都非常接近。
  3. :使用bq增强单词withwithout不出现的文档。看这里。例如 :bq=(*:* -with -without)^999


 类似资料:
  • 问题内容: 我想对包含特定单词的所有锚应用不同的样式。可以在纯CSS中完成吗?如果仅CSS3,也可以。 问题答案: 编号曾经被提议过,但不在CSS3选择器的当前工作草案中。 您将需要一些JavaScript,例如:

  • 我想创建一个出站安全规则,允许该特定流量,而不允许其他任何内容,但问题是AWS安全规则只允许CIDR过滤(即静态IP地址)。 AWS服务和配置的组合是什么?

  • 如果没有引用,会导致解析发生更改吗?

  • 1. 基本规则 除了Hello World这种极简单的程序之外,一般的程序都是由多个源文件编译链接而成的,这些源文件的处理步骤通常用Makefile来管理。Makefile起什么作用呢?我们先看一个例子,这个例子由例 12.3 “用深度优先搜索解迷宫问题”改写而成: /* main.c */ #include <stdio.h> #include "main.h" #include "stack.

  • 08:00:59得分10*5=>50 08:01:00得分9*5=>45 似乎在08:00:59计算分数,在08H01:00进行分数验证 此外,我看到移动是从当前代理到当前代理。这样可以吗?