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的精确搜索_Solr - Fatal编程技术网

域上Solr的精确搜索

域上Solr的精确搜索,solr,Solr,我想精确匹配我收藏中的一个fieldsdomain。 现在,如果我搜索DIU,它会带给我DIU&DIU/DRRU,我只需要DIU。 当我搜索DIU/DRRU时,我只需要DIU/DRRU。 我怎样才能做到这一点?我正在使用Solr7.4 我的架构设置是- "name":"domain", "type":"text_general", "multiValued":false, "indexed":true, "stored":true}

我想精确匹配我收藏中的一个fieldsdomain。 现在,如果我搜索DIU,它会带给我DIU&DIU/DRRU,我只需要DIU。 当我搜索DIU/DRRU时,我只需要DIU/DRRU。 我怎样才能做到这一点?我正在使用Solr7.4

我的架构设置是-

"name":"domain",
        "type":"text_general",
        "multiValued":false,
        "indexed":true,
        "stored":true},

{
        "name":"text_general",
        "class":"solr.TextField",
        "positionIncrementGap":"100",
        "multiValued":true,
        "indexAnalyzer":{
          "tokenizer":{
            "class":"solr.StandardTokenizerFactory"},
          "filters":[{
              "class":"solr.StopFilterFactory",
              "words":"stopwords.txt",
              "ignoreCase":"true"},
            {
              "class":"solr.LowerCaseFilterFactory"}]},
        "queryAnalyzer":{
          "tokenizer":{
            "class":"solr.StandardTokenizerFactory"},
          "filters":[{
              "class":"solr.StopFilterFactory",
              "words":"stopwords.txt",
              "ignoreCase":"true"},
            {
              "class":"solr.SynonymGraphFilterFactory",
              "expand":"true",
              "ignoreCase":"true",
              "synonyms":"synonyms.txt"},
            {
              "class":"solr.LowerCaseFilterFactory"}]}},

使用字符串字段而不是基于文本的文本\u常规字段-带有标准标记符的文本\u常规字段将在/上拆分。字符串字段仅在与存储的值完全匹配的情况下才提供匹配。

当前,字段域将文本作为字段的字段类型。 如果要查找精确匹配项,请对字段使用关键字标记器。因为它不创建文本的标记

关键字标记器是:该标记器将整个文本字段视为单个标记

您可以将以下字段类型用于您的字段。这样做的好处是可以搜索所有大小写的单词……大写和小写都可以

<fieldType name="lowercaseExactMatch" class="solr.TextField" positionIncrementGap="100">
   <analyzer>
     <tokenizer class="solr.KeywordTokenizerFactory"/>
     <filter class="solr.LowerCaseFilterFactory" />
   </analyzer>
</fieldType>

您的意思是用字符串替换名称:text\u general??是的,用字符串替换字段的字段类型,而不是test\u general。@user662285是的。