1

我有 4 个索引文档。1. 产品类别,2. 产品,3. 产品详情 4. 卖家。我需要在所有四个文档的所有字段中执行关键字搜索并返回排名靠前的产品。

示例产品类别:电子产品、服装等

示例产品:电子产品类别中的电视、手机

示例产品详细信息:14 英寸,品牌三星电视的黑色

卖家示例:经销商 1、经销商 2。

示例搜索查询:“三星 LED 电视”

这些文档之间的关系使用外键来维护。例如:产品文档将具有类别主键。

我需要一个关键字搜索,它应该与这 4 个文档的所有字段匹配,并根据排名返回产品。

我会通过从孩子开始搜索来解决这个问题,比如分别搜索卖家字段、产品详细信息、产品和类别,最后加入结果。问题是排名。一些与用户关键字更相关的产品在结果中下降。

有没有最好的方法来加入文档并在加入文档的所有字段中搜索某些关键字,以便结果更加相关和有序?

4

1 回答 1

1

加入文档的最佳方式是在将它们添加到索引之前。Lucene 不是关系数据库。有一些包等提供类似的功能,但通常通过在文档本身中提供您希望在其上搜索文档的所有内容来为您提供更好的服务。我相信您想在这里搜索产品,因此您可以创建一个包含以下字段的产品文档:

Name:TV
Category:Electronics Entertainment
Seller:Dealer1 Dealer2
Details:14 in size black etc etc etc
text:TV Electronics Entertainment Dealer1 Dealer2 14 in size black etc etc etc

添加了上面的text字段以提供一个字段以将文档中的所有内容连接在一起,以便轻松搜索附加到文档的任何内容,这似乎对您的情况很有帮助,因为您可以text在搜索时将其设置为默认字段,或运行类似的查询text:(samsung LED TV)

于 2013-06-21T15:56:34.767 回答