像下面这样的查询将如何执行,按哪个顺序执行
我知道当这个查询被执行时,fieldList中提到的字段将被返回。我不明白的是如何"samplestring1"one_answers"samplestring2"将得到搜索与查询字段指定
我想我将能够理解搜索是如何发生的,如果这可以在SQL中说明(只是为了了解幕后发生了什么)
查询如下。请看看它,让我知道这是如何工作的内部。query=samplestring1 AND samplestring2defType: edismaxqueryFields: Exact_Field1^1.0 Exact_Field2^0.9 Field1^0.8 Field2^0.7fieldList: Column1, Column2resultRows: 10startRow: 0
p。S samplestring1和samplestring2是查询
中的一些测试字符串字段
Schema示例<fieldType name="sampletype1" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="5" maxGramSize="10"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldtype name="sampletype2" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldtype>
<field name="Field1" compressed="true" type="sampletype1" multiValued="false" indexed="true" stored="true" required="true" omitNorms="true"/>
<field name="Field2" compressed="true" type="sampletype1" multiValued="false" indexed="true" stored="true" required="true" omitNorms="true"/>
<field name="Exact_Field1" omitPositions="true" termVectors="false" omitTermFreqAndPositions="true" compressed="true" type="sampletype2" multiValued="false" indexed="true" stored="true" required="true" omitNorms="true"/>
<field name="Exact_Field2" omitPositions="true" termVectors="false" omitTermFreqAndPositions="true" compressed="true" type="sampletype2" multiValued="false" indexed="true" stored="true" required="false" omitNorms="true"/>
<copyField source="Field1" dest="Exact_Field1"/>
<copyField source="Field2" dest="Exact_Field2"/>
SQL和solr是非常不同的。我建议您做的是将&debugQuery=on
参数添加到您的查询url中,这将在输出中为您提供ParsedQuery,因此您可以知道它如何在内部生成已解析的查询。