Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Php 拼写检查短语_Php_Search_Solr_Solarium - Fatal编程技术网

Php 拼写检查短语

Php 拼写检查短语,php,search,solr,solarium,Php,Search,Solr,Solarium,我在想办法做两套拼写检查 处理文档中常见单词拼写检查查询的程序。另一个是处理拼写检查的查询,比如作者姓名,可以是多个单词。我希望它能起作用,这样即使他们离作者的名字很近,也能显示出建议;但是对于拼写错误的建议要求单词距离更近 现在我有一个拼写的通用字段,但是它做了很多标记化,这会分解短语;所以我不能用它来进行短语匹配 以下是拼写检查组件: <searchComponent name="spellcheck" class="solr.SpellCheckComponent" startup=

我在想办法做两套拼写检查

处理文档中常见单词拼写检查查询的程序。另一个是处理拼写检查的查询,比如作者姓名,可以是多个单词。我希望它能起作用,这样即使他们离作者的名字很近,也能显示出建议;但是对于拼写错误的建议要求单词距离更近

现在我有一个拼写的通用字段,但是它做了很多标记化,这会分解短语;所以我不能用它来进行短语匹配

以下是拼写检查组件:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent" startup="lazy">
    <!-- <str name="queryAnalyzerFieldType">textSpell</str> -->
    <lst name="spellchecker">
        <str name="name">default</str>
        <str name="field">spell</str>
        <str name="classname">solr.DirectSolrSpellChecker</str>
        <str name="distanceMeasure">internal</str>
        <float name="accuracy">0.65</float>
        <int name="minPrefix">0</int>
        <int name="maxEdits">1</int>
        <int name="maxInspections">5</int>
        <int name="minQueryLength">3</int>
        <float name="maxQueryFrequency">0.0005</float>
        <float name="thresholdTokenFrequency">.001</float>

        <str name="buildOnCommit">true</str>
    </lst>

    <!-- a spellchecker that can break or combine words.  See "/spell" handler below for usage -->
    <lst name="spellchecker">
        <str name="name">wordbreak</str>
        <str name="classname">solr.WordBreakSolrSpellChecker</str>
        <str name="field">spell</str>
        <str name="combineWords">true</str>
        <str name="breakWords">true</str>
        <int name="maxChanges">1</int>

        <str name="buildOnCommit">true</str>
    </lst>
</searchComponent>

违约
拼写
solr.DirectSolrSpellChecker
内部的
0.65
0
1.
5.
3.
0.0005
.001
真的
断字
solr.WordBreakSolrSpellChecker
拼写
真的
真的
1.
真的
以及实际的拼写字段:

<fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
                <filter class="solr.EnglishMinimalStemFilterFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
</fieldType>
<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>

对单独的令牌进行拼写检查。您可以在
solr.removedUpplicateStokenFilterFactory
之前将
solr.ShingleFilterFactory
添加到分析中,以生成短语标记