Apache Solr:索引时间字段提升

时间:2016-01-12 14:18:51

标签: solr-boost

我正在使用Solr和edismax解析器搜索产品数据库,我希望在某些字段中点击其他字段的点击次数。 假设每个产品都有一个名称和一个 short_description ,还有其他可能是动态的字段。应该搜索所有字段,但 name short_description 应该比其他字段更重要(或更少)。

我知道这可以在查询时使用 qf 参数(Documentation)完成。 我可以看到它有效。根据提供的字段,文档可以上下得分。

问题是我显然需要提及要搜索的所有字段,其他字段可能是动态的。也许我可以以某种方式得到所有相关领域并发送它们,但我更喜欢在索引时的解决方案。

我继承了这个代码,代码正在做的是将以下JSON发送到索引:

{
"add": {
    "boost": 1,
    "doc": {
        (...)
        "name": {
            "boost": 0.3,
            "value": "product name #1"
        },
        (...)
        "short_description": {
            "boost": 3,
            "value": "some text"
        },

我希望 short_description 中的点击值增加值为3,名称中的点击量增加0.3,即与其他所有值相比得分(默认值)文件价值1)。

如果 name 中匹配的文档与 short_description 中匹配的文档的得分相同。

(搜索 mordor

      {
    (...)
    "name": "mordor",
    "short_description": "this is a random description",
    (...)
    "score": 3.5821834
  },
  {
    (...)
    "name": "this is a random description",
    "short_description": "mordor",
    (...)
    "score": 3.5821834
  }

我发现this document说:

  

如果在每个文档上设置索引时间字段提升都没有价值。

这是为什么它不起作用?或者我做错了什么? 如果它不是那样工作,有没有办法在查询时输入类似通配符的东西到 qf 参数(即 qf = name ^ 3 short_description ^ 0.3 * )?

0 个答案:

没有答案