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

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 如何搜索缩写词";其";至于;资讯科技服务“;在索尔_Search_Solr_Schema - Fatal编程技术网

Search 如何搜索缩写词";其";至于;资讯科技服务“;在索尔

Search 如何搜索缩写词";其";至于;资讯科技服务“;在索尔,search,solr,schema,Search,Solr,Schema,在我的数据集中,“ITS”一词的意思是“信息技术服务”。然而,当我在solr中搜索“ITS”时,我会得到像“it”、“it's”和“ITS”(形容词)这样的结果。没有任何结果与“信息技术服务”有关。为此,我如何更改Solr 下面列出了我对该字段的模式。我实际上使用了两个字段。一个有词干,另一个没有词干。但它仍然不起作用 <fieldType name="text" class="solr.TextField" positionIncrementGap="100"&g

在我的数据集中,“ITS”一词的意思是“信息技术服务”。然而,当我在solr中搜索“ITS”时,我会得到像“it”、“it's”和“ITS”(形容词)这样的结果。没有任何结果与“信息技术服务”有关。为此,我如何更改Solr

下面列出了我对该字段的模式。我实际上使用了两个字段。一个有词干,另一个没有词干。但它仍然不起作用

<fieldType name="text" class="solr.TextField"
            positionIncrementGap="100">
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.StopFilterFactory"
                    ignoreCase="true" words="stopwords.txt"/>
                <filter class="solr.WordDelimiterFilterFactory"
                    generateWordParts="1" generateNumberParts="1"
                    catenateWords="1" catenateNumbers="1" catenateAll="0"
                    splitOnCaseChange="1"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory"
                    protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </analyzer>
        </fieldType>

    <!-- for no stemming -->
<fieldType name="text_no_stemming" class="solr.TextField"
    positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.StopFilterFactory"
            ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.WordDelimiterFilterFactory"
            generateWordParts="1" generateNumberParts="1"
            catenateWords="1" catenateNumbers="1" catenateAll="0"
            splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>                
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
</fieldType>


您没有让Solr知道它是“信息技术服务”的同义词。您需要先执行此操作,请检查

我不确定同义词过滤器是否有效。例如,假设我编写了一个简单的规则,比如it,its,it's=>informationtechnologyservice。如果文档中只包含“Itisrainy”这样的句子。这句话会被编入“信息技术服务是雨天”的索引吗?如果你的意思是“its”有时意味着信息技术服务,有时也意味着“its”,那么sorl本身无法区分这些。您可以使用一些NLP对输入进行预处理并尝试消除歧义。您是否知道任何NLP库都可以轻松集成到Solr中?set ignoreCase=“false”因此它看起来与它不同