繁体   English   中英

solr 选择 2 个字段

[英]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&gt;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&gt;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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM