- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用solr 3.6,并且我想将来自荐言者的排序规则用作自动搜索多词搜索的解决方案。不幸的是,即使存在针对每个单词的大量建议,对于多词搜索,建议者也只会返回一个排序规则。根据我的测试搜索和基础索引数据,我确定必须存在更多排序规则。
我的“建议者”配置有问题吗?
<!--configuration -->
<searchComponent class="solr.SpellCheckComponent" name="suggest">
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
<str name="field">text</str> <!-- the indexed field to derive suggestions from -->
<!--<float name="threshold">0.0005</float> disabled for test-->
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">200</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.maxCollations">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">4</int>
</lst>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="bio">
<int name="numFound">27</int>
<int name="startOffset">0</int>
<int name="endOffset">3</int>
<arr name="suggestion">
<str>bio</str>
<str>bio-estetica</str>
<str>bio-kosmetik</str>
...
</arr>
</lst>
<lst name="ber">
<int name="numFound">81</int>
<int name="startOffset">4</int>
<int name="endOffset">7</int>
<arr name="suggestion">
<str>beratung</str>
<str>bern</str>
...
</arr>
</lst>
<str name="collation">bio beratung</str>
</lst>
</lst>
</response>
最佳答案
我遇到了与您相同的问题,并且设法解决了这个问题。事实证明,要使多个排序规则正常工作,您需要了解几件事。
首先,必须在QueryComponent
中“最建议”的components
的requestHandler
列表下指定solrconfig.xml
。否则,您的requestHandler
不知道如何查询索引,因此它无法弄清楚每个更正的查询有多少次匹配,因此您只会得到一个。如果您在查询中添加了spellcheck.collateExtendedResults=true
,您将看到hits
为0,这表明Solr无需费心针对索引检查更正后的查询。
他们通过一些不透明的错误消息对此进行了提示:INFO: Could not find an instance of QueryComponent. Disabling collation verification against the index.
添加它的最简单方法是使用默认的QueryComponent
,称为“查询”。因此,在上面发布的XML中,将“组件”部分更改为:
<arr name="components">
<str>suggest</str>
<str>query</str>
</arr>
spellcheck.maxCollations
设置为大于1(duh),而不太直观的话,您需要将
spellcheck.maxCollationTries
设置为较大的数字(例如1000)。如果将其中两个设置为默认值(均为0),那么Solr只会给您一个排序规则。另外,您需要将
spellcheck.count
设置为大于1。
q=bio+ber
q=text:"bio+ber"
q=my_field:"brain+c"
&spellcheck.count=5
&spellcheck.maxCollations=10
&spellcheck.maxCollationTries=1000
&spellcheck.collateExtendedResults=true
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">4</int>
</lst>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="brain">
<int name="numFound">1</int>
<int name="startOffset">15</int>
<int name="endOffset">20</int>
<arr name="suggestion">
<str>brain</str>
</arr>
</lst>
<lst name="c">
<int name="numFound">4</int>
<int name="startOffset">21</int>
<int name="endOffset">23</int>
<arr name="suggestion">
<str>cancer</str>
<str>cambrian</str>
<str>contusion</str>
<str>cells</str>
</arr>
</lst>
<lst name="collation">
<str name="collationQuery">my_field:"brain cancer"</str>
<int name="hits">2</int>
<lst name="misspellingsAndCorrections">
<str name="brain">brain</str>
<str name="c">cancer</str>
</lst>
</lst>
<lst name="collation">
<str name="collationQuery">my_field:"brain contusion"</str>
<int name="hits">1</int>
<lst name="misspellingsAndCorrections">
<str name="brain">brain</str>
<str name="c">contusion</str>
</lst>
</lst>
<lst name="collation">
<str name="collationQuery">my_field:"brain cells"</str>
<int name="hits">1</int>
<lst name="misspellingsAndCorrections">
<str name="brain">brain</str>
<str name="c">cells</str>
</lst>
</lst>
</lst>
</lst>
<result name="response" numFound="0" start="0"/>
</response>
关于autocomplete - Solr仅对Suggester组件返回一个排序规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10547438/
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我的计算机上安装了 SE JDK 1.8.0_45。我希望编译器的源版本和目标版本都是 1.7。 我在 gradle 中做到了这一点,但我不知道如何在 IntelliJ IDEA 14.1.3(社区版
我正致力于根据以前成功搜索中使用的术语在我们的搜索应用程序(使用 Solr)中提供自动建议功能。在 Solr 建议文档 ( http://wiki.apache.org/solr/Suggester
我想过滤来自我的建议者的自动完成结果 假设我有一张书 table Table (Id Guid, BookName String, BookOwner id) 我希望每个用户都能从自己的书中获得一个自
你好 Stack Overflow 的人。我想就以下问题提出一些建议。我正在使用 Java。 我有一个包含多个字符串的数组#1。例如,其中两个字符串可能是:“一个苹果落在牛顿的头上”和“苹果长在树上”
当有人使用我的应用程序时,我想关闭在软/虚拟键盘上显示“建议的单词”(仅在某些 Activity 上)。对于默认的 Android 键盘,可以在“设置”下(在 Word Suggestion Sett
我正在尝试在 Solr 上使用自动完成功能,我找到的方法是使用 Solr Suggester .但是,它没有按预期工作。如果有人调用 http://localhost:8983/solr/techpr
Google建议如何工作?根据遥远的Google数据库中的信息,它如何快速地更新客户端上的网页?如果网页经常更新,为什么页面看起来不“跳动”? 最佳答案 它使用AJAX。 当您编写查询时,它会搜索与您
每当我运行 Build & Reload来自 RStudio 的 Build Pane ,我收到消息 ==> Rcmd.exe INSTALL --no-multiarch rwiots Err
几天来,我正在使用 NetBeans 6.8 进行 PHP 工作。 但是即使包含一个类文件并且方法是公共(public)的并且使用了 phpDoc,NetBeans 每次都会在窗口中显示“No Sug
我不知道我在这里使用的术语是否正确。然而,这就是我想要实现的目标,我想就如何实现这一目标提出一些建议。我想要一个可见边框的圆圈。现在这是困难的部分,我什至不知道如何开始。我想以这样一种方式来操纵圆圈,
我即将开发一个处理极其有值(value)的数据的应用程序。如果用户丢失这些数据,代价将非常高昂,因此我有兴趣了解更多有关满足我们需求的最佳架构设计的信息。 用户每天都会在 iPhone 中输入这些数据
wiki page of the Solr Suggester component没有提到如何搜索提供的字段?仅是前缀,还是也可以进行中缀搜索? 最佳答案 是的,支持。编辑你的 solrconfig.
我创建了一个新的 Azure 搜索建议器,但使用以下代码实现了模糊搜索: ISearchIndexClient indexClient = CreateSearchIndexClient(); var
是否可以让 Elasticsearch 完成建议程序按排序顺序返回结果?我正在遵循 this Elasticsearch blog post 中的示例并增加了额外的酒店: {"name": "Merc
我无法借助 search:suggest 函数提供这个简单的自动完成功能。 基于 Marklogic 演示数据中的奥斯卡语料库,我尝试提供一个建议查询,例如,即使用户当前正在写入“Robert Lo”
这是用 C 语言编写的 CGI 程序的一部分。当客户端单击链接时,我希望开始下载文件,并使用建议的默认文件名。 我知道规范明确指出 Content-disposition header 中指定的文件名
我正在尝试将谷歌建议链接到我的网站。我认为我正在使用的链接或我尝试读取文件的方式可能有问题。无论如何,这是我在我的 php 文件中使用的链接和代码 $filehandle=fopen("http://
我正在寻找一个不错的模板引擎或一小段代码来扩展 Java 字符串中类似 Ant 的变量。示例: String result = expand ("${firstName} ${familyName}"
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 8年前关闭。 Improve this que
我是一名优秀的程序员,十分优秀!