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
Solr MLT:获取具有相似关键字的所有记录_Solr_Morelikethis - Fatal编程技术网

Solr MLT:获取具有相似关键字的所有记录

Solr MLT:获取具有相似关键字的所有记录,solr,morelikethis,Solr,Morelikethis,我有一个字段,其中包含我想要的所有可搜索文本,其中包含记录的关键字,如下所示: <field name="boardtext" type="text" indexed="true" stored="false" required="false" omitTermFreqAndPositions="true" /> <copyField source="board_name" dest="boardtext"/> <copyFi

我有一个字段,其中包含我想要的所有可搜索文本,其中包含记录的关键字,如下所示:

    <field name="boardtext" type="text" indexed="true" stored="false" required="false" omitTermFreqAndPositions="true" />
    <copyField source="board_name"         dest="boardtext"/>
    <copyField source="offers_titles"      dest="boardtext"/>
    <copyField source="high_category_name" dest="boardtext"/>
        <!-- in this example, we will only use synonyms at query time -->
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="false"/>

        <!-- Case insensitive stop word removal.
          add enablePositionIncrements=true in both the index and query
          analyzers to leave a 'gap' for more accurate phrase queries.
        -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
            <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-special-chars.txt"/>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="true"/>
        <!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms_wn.txt" ignoreCase="true" expand="false"/> -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsQueryFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
    </fieldType>
但每当我试图通过该字段获取类似的记录MLT时,返回的结果都是零。我错过什么了吗?索尔在找什么

        <!-- in this example, we will only use synonyms at query time -->
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="false"/>

        <!-- Case insensitive stop word removal.
          add enablePositionIncrements=true in both the index and query
          analyzers to leave a 'gap' for more accurate phrase queries.
        -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
            <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-special-chars.txt"/>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="true"/>
        <!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms_wn.txt" ignoreCase="true" expand="false"/> -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsQueryFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
    </fieldType>
更新:

        <!-- in this example, we will only use synonyms at query time -->
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="false"/>

        <!-- Case insensitive stop word removal.
          add enablePositionIncrements=true in both the index and query
          analyzers to leave a 'gap' for more accurate phrase queries.
        -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
            <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-special-chars.txt"/>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="true"/>
        <!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms_wn.txt" ignoreCase="true" expand="false"/> -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsQueryFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
    </fieldType>
文本类型分析器:

        <!-- in this example, we will only use synonyms at query time -->
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="false"/>

        <!-- Case insensitive stop word removal.
          add enablePositionIncrements=true in both the index and query
          analyzers to leave a 'gap' for more accurate phrase queries.
        -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
            <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-special-chars.txt"/>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

            <filter class="solr.SynonymFilterFactory" synonyms="synonyms_test.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_list.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms_auto.txt" ignoreCase="true" expand="true"/>
        <!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms_wn.txt" ignoreCase="true" expand="false"/> -->

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" protected="protwords.txt" />

            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" protected="protwords.txt" />

            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
            <filter class="solr.PatternReplaceFilterFactory" pattern="(\bcom\b)" replacement="\.$1" replace="all"/>

            <!-- Common Grams filter 
            <filter class="solr.CommonGramsQueryFilterFactory" words="commongrams.txt" ignoreCase="true"/>-->

        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
            <filter class="solr.ASCIIFoldingFilterFactory"/>
      </analyzer>
    </fieldType>

你的模式是什么?您的索引中使用了哪些过滤器和分析器?先生,我更新了问题,谢谢您的回答!似乎您要么需要最好地启用termvectors,要么需要更差地启用Storage Vectors。尝试重新编制索引