模式文件中特殊字符的 Solr 字段类型声明

发布于 2024-12-31 22:15:30 字数 1539 浏览 2 评论 0原文

我想存储 Building &场地维护艺术教师/导师categoryname,并在schema.xmltextTight code>

<fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
            <filter class="solr.WordDelimiterFilterFactory" ignoreCase="true"  splitOnCaseChange="1" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/> 
            <filter class="solr.LowerCaseFilterFactory"/>
            <!--<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> -->
             <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true" outputUnigramIfNoNgram="true" />
            <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
                 possible with WordDelimiterFilter in conjuncton with stemming. -->
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
    </fieldType>

但是当查询时 categoryname:建筑与场地维护 结果为零。字段类型声明需要进行哪些更改。请帮忙解决。

谢谢

I would like to store Building & Grounds Maintenance and Art Teacher /Tutor as categoryname and declared a field type as textTight in schema.xml

<fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
            <filter class="solr.WordDelimiterFilterFactory" ignoreCase="true"  splitOnCaseChange="1" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/> 
            <filter class="solr.LowerCaseFilterFactory"/>
            <!--<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> -->
             <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true" outputUnigramIfNoNgram="true" />
            <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
                 possible with WordDelimiterFilter in conjuncton with stemming. -->
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
    </fieldType>

but when querying for
categoryname:building & grounds maintenance it getting zero result. What are the changes need in field type declaration. Please help to solve.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

硪扪都還晓 2025-01-07 22:15:30

您可以尝试将类别存储为关键字(不使用任何类型的标记器)。

实现这一目标的最简单方法是:

<fieldType name="keywords" class="solr.TextField" />

您也可以合并同义词。

You might try to store categories as keywords (without any sort of tokenizer).

the most simple way to achieve this is:

<fieldType name="keywords" class="solr.TextField" />

you may incorporate synonyms as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文