域上Solr的精确搜索
我想精确匹配我收藏中的一个fieldsdomain。 现在,如果我搜索DIU,它会带给我DIU&DIU/DRRU,我只需要DIU。 当我搜索DIU/DRRU时,我只需要DIU/DRRU。 我怎样才能做到这一点?我正在使用Solr7.4 我的架构设置是-域上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}
"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是的。