奇怪的 Solr spring 行为
Strange Solr spring behaviour
当我使用 Spring 数据构建查询时,它会生成以下查询:
http://localhost:8983/solr/pride_projects/select?q=accession:*PXD*+OR+accession:*PRD*+AND+publication_date:[2012\-12\-31T00\:00\:00.000Z+TO+2012\-12\-31T00\:00\:00.000Z]
这没有给我任何结果。我手动将 Solr 中的查询更改为:
http://localhost:8983/solr/pride_projects/select?q=accession:*PXD*+OR+accession:*PRD*+publication_date:[2012\-12\-31T00\:00\:00.000Z+TO+2012\-12\-31T00\:00\:00.000Z]
此处输出:
{
accession: "PXD000002",
project_title: "The human spermatozoa proteome",
project_description: "The human spermatozoa proteome was in depth
characterized using shotgun iterative GeLC-MS/MS method with peptide
exclusion lists.",
project_sample_protocol: "This LC-MS/MS analysis was repeated twice
by digested band using an identified peptide exclusion list,
generated by Proteome Discoverer, from the previous LC-MS/MS runs of
the same sample.",
submission_date: "2012-01-02T00:00:00Z",
删除最后一个 AND
,现在查询有效。我希望这两个查询都有类似的行为,但事实并非如此。
有什么想法吗?
没有理由在您删除 AND 要求时结果应该相同 - 您设置的默认行为可能是所有子句都是可选的,除非您具体要求它(通过 AND
).
由于您的 publication_date
间隔仅匹配一毫秒,它不匹配任何文档 - 因此在您上次查询中它被忽略(如果文档匹配会影响分数)。
2012-12-31T00:00:00.000Z TO 2012-12-31T00:00:00.000Z
.. 间隔的开始与间隔的结束相同,但是由于您使用了 [
和 ]
(这意味着包含值本身),您会得到匹配以该毫秒为索引的文档。
您可能打算过滤更广泛的范围。
当我使用 Spring 数据构建查询时,它会生成以下查询:
http://localhost:8983/solr/pride_projects/select?q=accession:*PXD*+OR+accession:*PRD*+AND+publication_date:[2012\-12\-31T00\:00\:00.000Z+TO+2012\-12\-31T00\:00\:00.000Z]
这没有给我任何结果。我手动将 Solr 中的查询更改为:
http://localhost:8983/solr/pride_projects/select?q=accession:*PXD*+OR+accession:*PRD*+publication_date:[2012\-12\-31T00\:00\:00.000Z+TO+2012\-12\-31T00\:00\:00.000Z]
此处输出:
{
accession: "PXD000002",
project_title: "The human spermatozoa proteome",
project_description: "The human spermatozoa proteome was in depth
characterized using shotgun iterative GeLC-MS/MS method with peptide
exclusion lists.",
project_sample_protocol: "This LC-MS/MS analysis was repeated twice
by digested band using an identified peptide exclusion list,
generated by Proteome Discoverer, from the previous LC-MS/MS runs of
the same sample.",
submission_date: "2012-01-02T00:00:00Z",
删除最后一个 AND
,现在查询有效。我希望这两个查询都有类似的行为,但事实并非如此。
有什么想法吗?
没有理由在您删除 AND 要求时结果应该相同 - 您设置的默认行为可能是所有子句都是可选的,除非您具体要求它(通过 AND
).
由于您的 publication_date
间隔仅匹配一毫秒,它不匹配任何文档 - 因此在您上次查询中它被忽略(如果文档匹配会影响分数)。
2012-12-31T00:00:00.000Z TO 2012-12-31T00:00:00.000Z
.. 间隔的开始与间隔的结束相同,但是由于您使用了 [
和 ]
(这意味着包含值本身),您会得到匹配以该毫秒为索引的文档。
您可能打算过滤更广泛的范围。