我有4个索引文档。 1.产品类别,2。产品,3。产品详情4.卖家。我需要在所有四个文档的所有字段中执行关键字搜索,并返回排名靠前的产品。
示例产品类别:电子产品,布料等
示例产品:电视,移动电子类
示例产品详细信息:14个大小,黑色为品牌三星电视
卖方示例:经销商1,经销商2。
搜索查询示例:“三星LED电视”
使用外键维护这些文档之间的关系。例如:产品备件将具有类别主键。
我需要一个关键字搜索,它应与这4个文档的所有字段匹配,并根据排名返回产品。
我会通过从孩子那里搜索来解决这个问题,分别说搜索卖家字段,产品详情,产品和类别,最后加入结果。问题在于排名。用户关键字的一些更相关的产品会在结果中显示下来。
是否有最佳方法可以加入文档并搜索某些关键字的已加入文档的所有字段,以便结果更具相关性和有序性?
答案 0 :(得分: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)
之类的查询。