首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr:搜索实际项目与相关项目

Solr:搜索实际项目与相关项目
EN

Stack Overflow用户
提问于 2014-08-15 16:17:55
回答 1查看 60关注 0票数 2

我们使用solr进行产品搜索。在使用solr时,我们需要处理“是”vs相关的“。例如,如果我现在搜索“刀”,我得到的刀刀比我想要的要高得多,因为我们携带了那么多实际的刀。鉴于这两种产品的名称都是“刀”(将“8”大厨刀“与”电动刀刀“相比较),而且它们都存在于刀类中,因此在我们目前的体制中,很难区分”厨师刀“在这个搜索术语中得分更高。”

我们有一种方法来解决这个问题,当产品被分类并放在与另一个类别相关的网站上时,这是一种与产品相关的标签。例如,切割板类别与刀类有关,但在这种情况下,刀类是“主”类。在这种情况下,我们可以实现我们想要的差异化,但这需要大量的人力和管理。

我很好奇solr中是否有我不知道的功能,它会解决这个问题,或者仅仅是我们需要调整存储东西的方式。

这是一个8“厨师刀医生和电动刀刀医生的例子

8英寸刀:

代码语言:javascript
复制
"productId": 9071,
    "productName": "8\" Chinese Chef's Knife",
    "text": [
      "8\" Chinese Chef's Knife",
      "Update International",
      "KCC-8",
      "Chinese Chef's Knives"
    ],
    "productName_exact": "8\" Chinese Chef's Knife",
    "manuf": "Update International",
    "baseSku": "KCC-8",
    "sku": [
      "KCC-8"
    ],
    "modelTypeDesc": "Chinese Chef's Knives",
    "manufId": 74,
    "categories": [
      "Chef's Knives",
      "Chinese Chef's Knives",
      "Knife Sale"
    ],        
    "type": "Product",
    "popularity": 4301,
    "displayName": "Update International (KCC-8) - 8\" Chinese Chef's Knife",

电刀磨刀:

代码语言:javascript
复制
"productId": 3267,
    "productName": "Edlund Electric Knife Sharpener",
    "text": [
      "Edlund Electric Knife Sharpener",
      "Edlund",
      "395",
      "Electric Knife Sharpeners"
    ],
    "productName_exact": "Edlund Electric Knife Sharpener",
    "manuf": "Edlund",
    "baseSku": "395",
    "sku": [
      "395"
    ],
    "modelTypeDesc": "Electric Knife Sharpeners",
    "manufId": 22,
    "categories": [
      "Electric Knife Sharpeners",
      "Knife Sharpeners"
    ],       
    "type": "Product",
    "popularity": 53,
    "displayName": "Edlund (395) - Edlund Electric Knife Sharpener",

你会看到一个“受欢迎”的领域,我想使用,但问题是,考虑到该领域是基于有多好的销售,这可能是一个配件可能比项目本身卖得更好,但术语仍然应该符合项目本身的第一。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 16:30:31

所以我想出了一个很好的方法来帮助那些想知道。我意识到,我可以非常肯定地假设,如果一个人在寻找一把刀,他的搜索词将以“刀”这个词结尾。如果他在寻找削刀器,他的搜索词将以“削刀器”这个词结尾。

在此情况下,我能够创建一个字段,该字段只对产品名称的最后一个字进行索引。所以,在刀的情况下,它只是“刀”。在刀磨刀的情况下,它只是“削刀器”。

然后我将该字段编入索引,然后使用比标准产品名称字段更高的boost值对其进行查询。重要的是,我打破了用户的搜索词,只使用了最后一个词。我使用了一个非常严格的关键字标记器和分析,以确保它只在几乎精确的情况下匹配。它上只有小写、拼写和同义词过滤器。

这就自动实现了我想要的目标。唯一的警告是,如果产品没有正确的命名,它就不会出现在您预期的位置。一个很好的例子是“刀套”,而不是“刀”。这两把刀都是刀,但在搜索刀的时候,一把就不会那么高了。但人们也可以说,这是按计划进行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25330161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档