0

像下面这样的查询将如何执行,按什么顺序执行

我知道执行此查询时,将返回 fieldList 中提到的字段。我不明白的是如何使用指定的查询字段搜索“samplestring1”和“samplestring2”

如果可以用 SQL 来说明,我想我将能够理解搜索是如何发生的(只是为了了解幕后发生的事情)

以下是查询。请看一下,让我知道它在内部是如何工作的。query=samplestring1 AND samplestring2 defType: edismax queryFields: Exact_Field1^1.0 Exact_Field2^0.9 Field1^0.8 Field2^0.7 fieldList: Column1, Column2 resultRows: 10 startRow: 0

PS samplestring1 AND samplestring2 是查询中的一些测试字符串

字段模式示例

<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"/>
4

1 回答 1

0

SQL 和 solr 非常不同。我建议您将参数添加&debugQuery=on到您的查询 url,这将在输出中为您提供 ParsedQuery,因此您可以知道它如何在内部生成解析的查询。

于 2014-05-05T23:42:25.007 回答