如何在Lucene中使用查询时间提升来实现有效查询

时间:2016-06-10 13:15:17

标签: search lucene search-engine

我尝试实现一个具有提升功能的查询。我想问一个例子:

字段:视图(LongField),timeMillis(LongField),内容(TextField),类型(StringField),userId(StringField)

我想在内容字段中搜索一个单词。但我必须使用views,timeMillis和类型字段来提升。

索引文档在此处:

  1. timeMilles: 1465558045071 views: 32 userId: 1 类型:客户内容:测试测试
  2. timeMilles: 1465551034310 观看次数: 18 userId: 2 类型:客户内容:测试测试
  3. timeMilles: 1465558048204 views: 2 userId: 1 type :admin content :测试测试
  4. timeMilles: 1465551037318 观看次数: 28 userId: 2 类型:客户内容:测试测试
  5. timeMilles: 1465551039323 views: 22 userId: 3 类型: admin 内容:测试测试
  6. 提升查询时间的字段中的重要性顺序:类型,timeMilles,views

    预期结果如:

    1. timeMilles: 1465551039323 views: 22 userId: 3 类型: admin 内容:测试测试

    2. timeMilles: 1465558048204 观看次数: 2 userId: 1 类型: admin 内容:测试测试

    3. timeMilles: 1465558045071 views: 32 userId: 1 类型:客户端*内容:*测试测试

    4. timeMilles: 1465551037318 views: 28 userId: 2 类型:客户端内容:测试测试

    5. timeMilles: 1465551034310 观看次数: 18 userId: 2 类型:客户内容:测试测试

    6. 我认为以一定的间隔对视图和timeMilles进行分组,并为这些间隔创建查询。之后,我将这些间隔查询的提升值设置为其重要性。例如,0.1f表示1< = views< = 10,2.2f表示11< = views< = 20,等等。对于timeMilles字段,它可以相同。

      其次,我认为创建一个术语查询,其中包含类型字段的术语文本。术语的文本是“admin”和“client”。 “admin”查询的提升值大于“客户端”查询。

      最后,我创建了内容查询,然后将所有查询添加到布尔查询中。当我搜索这些查询时。我的结果与预期结果相似,但不正确。

      1. timeMilles: 1465558048204 观看次数: 2 userId: 1 类型: admin 内容:测试测试

      2. timeMilles: 1465551039323 views: 22 userId: 3 类型: admin 内容:测试测试

      3. timeMilles: 1465558045071 views: 32 userId: 1 类型:客户端*内容:*测试测试

      4. timeMilles: 1465551034310 观看次数: 18 userId: 2 类型:客户内容:测试测试

      5. timeMilles: 1465551037318 views: 28 userId: 2 类型:客户端内容:测试测试

      6. 如何按预期结果更正结果?你能否在一个领域提出改进策略的建议?

0 个答案:

没有答案