【问题标题】:Solr Faceting count drop to zeroSolr 刻面计数降至零
【发布时间】:2011-09-01 15:02:03
【问题描述】:

我工作的应用程序使用 Solr 来索引不同商店的页面或产品。当我说“不同商店的产品”时,是指一种产品可以在A店或B店买到,但不能在C店买到。如果客户连接到C店的网站并搜索没有可用的产品在这家商店,它不应该出现在搜索结果中。

我的架构中有一个“类型”字段,允许我判断文档是“页面”还是“产品”。现在我有了这个搜索约束,这个字段要么包含“page”,要么包含一个复合键,比如“productB”的“productA”。你猜对了,A 或 B 是商店的 id。

对于数据库中的每个产品,我将索引它 n 次,其中 n 是销售该产品的可用商店的数量。

我想使用分面搜索来过滤我想搜索的商店,但我遇到了一个问题:

我正在开始索引并搜索“foobar”而不进行搜索。我得到一个这样的方面列表:

<lst name="facet_fields">
    <lst name="type">
        <int name="productA">10</int>
        <int>0</int>
</lst>

这个数字一直在增长(这是正常的),直到商店 A 的索引完成。 然后我开始索引存储B,查询solr时得到这种结果

<lst name="facet_fields">
    <lst name="type">
        <int name="productA">303</int>
        <int name="productB">6</int>
        <int>0</int>
</lst>

但是过了一会儿,solr 生气了,然后把这个结果发给我:

<lst name="facet_fields">
    <lst name="type">
        <int name="productB">320</int>
</lst>

是的。我什至没有 productA 的方面计数,我什至无法搜索它!它会带来0个结果。

你知道发生了什么吗? 对这类问题使用 facet 是错误的吗?

【问题讨论】:

  • 您可能正在通过主键覆盖文档。你能得到任何productA文件吗?
  • 不,我无法获得任何 productA 文件。感谢您的回答。现在听起来很明显......

标签: java php solr faceted-search


【解决方案1】:

您可能正在通过唯一键覆盖文档。确保来自不同商店的产品具有不同的唯一键。您可以通过将每个商店的前缀附加到唯一键值来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多