我有4个索引文档。1.产品类别,2.产品,3.产品详情4.卖家我需要在所有四个文档的所有字段中执行关键字搜索,并返回排名靠前的产品。
示例产品类别:电子产品、布料等
示例产品:电视、手机类电子产品
示例产品详细信息: 14号,品牌三星电视黑色
示例卖家:经销商1,经销商2。
示例搜索查询:"samsung LED TV“
这些文档之间的关系使用外键进行维护。例如:产品文档将具有类别主键。
我需要一个关键字搜索,应该匹配这4个文件的所有领域,并返回基于排名的产品。
我会通过从子搜索来解决这个问题,比如搜索卖家字段、产品详细信息、产品和类别,最后加入结果。问题在于排名。一些与用户关键字更相关的产品会在结果中出现。
有没有最好的方法来连接文档,并在连接的文档的所有字段中搜索一些关键字,以便结果更加相关和有序?
发布于 2013-06-21 23:56:35
连接文档的最佳方法是在将文档添加到索引之前。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)这样的查询。
https://stackoverflow.com/questions/17232046
复制相似问题