gpt4 book ai didi

solr - 使用 Solr 1.4 进行通配符搜索和突出显示

转载 作者:行者123 更新时间:2023-12-04 10:31:54 24 4
gpt4 key购买 nike

除了一些小的配置和架构更改之外,我已经安装了 SOLR 1.4 的基本版本。

<requestHandler name="standard" class="solr.SearchHandler" default="true">
<!-- default values for query parameters -->
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<str name="qf">
text
</str>
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count">1</str>
</lst>
</requestHandler>

我用于索引的主要字段类型是这样的:
<fieldType name="textNoHTML" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory" />
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>

现在,当我使用
"q=search+term&hl=on"

我得到了突出显示,并获得了准确的分数。

但是,对于通配符,我假设您需要使用“q.alt”?真的吗?如果是这样,我的查询如下所示:
"q.alt=search*&hl=on"

当我使用上面的查询时,突出显示不起作用,所有的分数都是“1.0”。

我究竟做错了什么?在不绕过一些非常酷的 SOLR 优化的情况下,这是我想要的。

干杯!

最佳答案

据我所知,您不能在 dismax 处理程序中使用通配符,请参阅 http://wiki.apache.org/solr/DisMaxRequestHandler#q .

为了模拟通配符搜索,我按照此处的一些说明使用了 EdgeNGrams:http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/ .实际上我真的只是将 edgytext fieldtype 添加到 schema.xml 并更改了我想要搜索的字段的 fieldtype。

希望这可以帮助!

关于solr - 使用 Solr 1.4 进行通配符搜索和突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com