java - Solr 。奇怪的方面搜索结果

标签 java solr

我提出这个请求:

http://localhost:8983/solr/collection1/select/?indent=on&q=*:*&fl=*&facet=true&facet.field=id&rows=99

并查看下一个结果:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">31</int>
<lst name="params">
<str name="facet">true</str>
<str name="fl">*</str>
<str name="indent">on</str>
<str name="q">*:*</str>
<str name="facet.field">id</str>
<str name="rows">99</str>
</lst>
</lst>
<result name="response" numFound="28" start="0">...</result>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="id">
<int name="0579B002">1</int>
<int name="100-435805">1</int>
<int name="3007WFP">1</int>
<int name="6H500F0">1</int>
<int name="9885A004">1</int>
<int name="EN7800GTX/2DHTV/256M">1</int>
<int name="EUR">1</int>
<int name="F8V7067-APL-KIT">1</int>
<int name="GB18030TEST">1</int>
<int name="GBP">1</int>
<int name="IW-02">1</int>
<int name="MA147LL/A">1</int>
<int name="NOK">1</int>
<int name="SOLR1000">1</int>
<int name="USD">1</int>
<int name="UTF8TEST">1</int>
<int name="VA902B">1</int>
<int name="adata">1</int>
<int name="apple">1</int>
<int name="asus">1</int>
<int name="ati">1</int>
<int name="belkin">1</int>
<int name="canon">1</int>
<int name="corsair">1</int>
<int name="dell">1</int>
<int name="maxtor">1</int>
<int name="samsung">1</int>
<int name="viewsonic">1</int>
<int name="SP2514N">0</int>
<int name="TWINX2048-3200PRO">0</int>
<int name="VDBDB1A16">0</int>
<int name="VS1GB400C3">0</int>
</lst>
</lst>
<lst name="facet_dates"/>
<lst name="facet_ranges"/>
</lst>
</response>

我无法理解为什么我会看到

    <int name="SP2514N">0</int>
    <int name="TWINX2048-3200PRO">0</int>
    <int name="VDBDB1A16">0</int>
    <int name="VS1GB400C3">0</int>

ot是什么意思?

VS1GB400C3  is not matching in all xml document

更新

请求:

http://localhost:8983/solr/collection1/select/?indent=on&q=*&fl=id&rows=9999

回复:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="fl">id</str>
<str name="indent">on</str>
<str name="q">*</str>
<str name="rows">9999</str>
</lst>
</lst>
<result name="response" numFound="28" start="0">
<doc>
<str name="id">GB18030TEST</str>
</doc>
<doc>
<str name="id">6H500F0</str>
</doc>
<doc>
<str name="id">F8V7067-APL-KIT</str>
</doc>
<doc>
<str name="id">IW-02</str>
</doc>
<doc>
<str name="id">MA147LL/A</str>
</doc>
<doc>
<str name="id">adata</str>
</doc>
<doc>
<str name="id">apple</str>
</doc>
<doc>
<str name="id">asus</str>
</doc>
<doc>
<str name="id">ati</str>
</doc>
<doc>
<str name="id">belkin</str>
</doc>
<doc>
<str name="id">canon</str>
</doc>
<doc>
<str name="id">corsair</str>
</doc>
<doc>
<str name="id">dell</str>
</doc>
<doc>
<str name="id">maxtor</str>
</doc>
<doc>
<str name="id">samsung</str>
</doc>
<doc>
<str name="id">viewsonic</str>
</doc>
<doc>
<str name="id">USD</str>
</doc>
<doc>
<str name="id">EUR</str>
</doc>
<doc>
<str name="id">GBP</str>
</doc>
<doc>
<str name="id">NOK</str>
</doc>
<doc>
<str name="id">3007WFP</str>
</doc>
<doc>
<str name="id">VA902B</str>
</doc>
<doc>
<str name="id">0579B002</str>
</doc>
<doc>
<str name="id">9885A004</str>
</doc>
<doc>
<str name="id">SOLR1000</str>
</doc>
<doc>
<str name="id">UTF8TEST</str>
</doc>
<doc>
<str name="id">EN7800GTX/2DHTV/256M</str>
</doc>
<doc>
<str name="id">100-435805</str>
</doc>
</result>
</response>

我无法在此处复制所有文档示例。

最佳答案

这里未经测试但半知情的猜测......

该值来源的文档可能已被删除。 Lucene 删除和文档更新将文档的旧版本标记为已删除(或逻辑删除),而无需实际重写磁盘上的任何数据。

因此,较早的文档将该术语插入到索引的术语词典中,然后可能被更新或删除。因此该术语仍在词典中,但当前包含该术语的文档为零。

发出 optimize或者使用 expungeDeletes=true 提交应该删除无关的术语。

关于java - Solr 。奇怪的方面搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912225/

相关文章:

java - Spring 3,JSR-303(bean 验证)和验证集合

java - UDP 数据包是否完整到达?

java - 如何检测 akka actor 终止是由于系统关闭造成的并避免重新启动它

java - Hibernate在使用@GenerateValue(strategy=GenerationType.AUTO)时不保存对象

search - Solr 4.0存储和搜索Profile的Normalize数据

Java缓存对象到磁盘

php - 如何在solr搜索中找到准确的关键字?

SOLR - 使用 group.limit 分组结果返回错误的 numFound

search - Solr 术语跨多个字段的组件?

web-services - Solr查询语法