Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 如何在SOLR中存储Pincode文件,如何根据Pincode检索数据?_Search_Solr_Lucene - Fatal编程技术网

Search 如何在SOLR中存储Pincode文件,如何根据Pincode检索数据?

Search 如何在SOLR中存储Pincode文件,如何根据Pincode检索数据?,search,solr,lucene,Search,Solr,Lucene,我有一个Pincode字段,如“389151”,我想以下面的格式存储它 pincode_分析:[ "389151", "38915", "3891", "389" ]您可以将Pincode字段复制到Pincode_分析字段,该字段使用类似以下字段类型定义: <fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100"> <analyzer type=

我有一个Pincode字段,如“389151”,我想以下面的格式存储它

pincode_分析:[ "389151", "38915", "3891", "389"
]

您可以将Pincode字段复制到Pincode_分析字段,该字段使用类似以下字段类型定义:

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="6" side="front" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>


这似乎很好。但是我怎样才能根据它检索数据呢?例如,如果我想要pincode“389001”的产品,那么我也想要这些结果,因为它们类似于pincode。对于这个pincode,我想要精确匹配,首先是pincode,然后是38900,然后是3890,最后是389。这怎么可能呢?我添加了
,它也会在查询时标记化。我认为您可以使用
q=389151*
进行搜索,它将返回如上所述的结果。您的代码中有一些错误。你不能把二合一加进去,你应该加进去,我试着这样做,但不起作用。事实上,我使用了analyzer工具,它显示正确。但是数据并没有像我想要的那样存储。但是得到了相应的结果