[英]solr select with 2 fields
我想执行组合搜索,其中 zygosity 和变体内容值与我的特定查询相匹配。
考虑到我的架构的一部分:
"fields":[{
"name":"id",
"type":"int",
"indexed":true,
"stored":true},
{
"name":"variant",
"type":"text_ws",
"indexed":true,
"stored":false},
{
"name":"zygosity",
"type":"text_ws",
"indexed":true,
"stored":false}],
我在以下失败的选择中找到了零个文档:
第一次尝试:使用 (+)
curl urlPath/solr/collection/select?q=+variant:"1:28898383:A>T" +zygosity:"het"&wt=json&indent=true&debugQuery=true&rows=100000
第二次尝试:fq
curl urlPath/solr/collection/select?q=variant:"1:28898383:A>T"fq=zygosity:'het'&wt=json&indent=true&debugQuery=true&rows=100000
示例响应:
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int><lst name="params"><str name="q">+zygosity:het +variant:(1\:22165566\:G>A)</str></lst></lst><result name="response" numFound="0" start="0"></result>
</response>
还有许多其他人...
那么我在这里做错了什么?
如果我只选择zygosity,我会找到9个文档!
curl urlPath/solr/collection/select?q=zygosity:*&wt=json&indent=true&debugQuery=true&rows=100000
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">0</int><lst name="params"><str name="q">zygosity:het</str></lst></lst><result name="response" numFound="9" start="0">...</result>
</response>
但如果我只选择变体,零文档返回给我
curl urlPath/solr/collection/select?q=variant:"1:28898383:A>T"&wt=json&indent=true&debugQuery=true&rows=100000
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int><lst name="params"><str name="q">variant:(1\:28898383\:A>T)</str></lst></lst><result name="response" numFound="0" start="0"></result>
</response>
有什么建议为什么 select 不考虑 2 个字段? 或者为什么只搜索变体字段不返回任何内容?
我猜问题出在参数的编码上。 我会尝试这样的事情:
curl http://localhost:8983/solr/your-core/select?q=variant%3Avariant-value%20AND%20zygosity%3Ahet
请注意,“%3A”是“:”的编码值,因此人类可读形式的q
值将表示:
q=variant:variant-value AND zygosity:het
我怀疑你的variant
值有一个冒号和一个大于号作为值的一部分是问题的一部分,因为这些字符可能很难正确编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.