使用 N Grams 在 solr 中进行建议(自动完成)搜索(建议组件的一种排序规则)

2023-12-30

我正在使用 EdgeNGrams 使用 solr 进行自动完成搜索。我使用 solr 3.3,我想使用建议器中的排序规则作为多术语搜索的自动完成解决方案。不幸的是,建议器仅返回多术语搜索的一种排序规则

如果用户正在搜索员工姓名,则应应用自动完成功能。即,想要像谷歌搜索这样的结果。下面的配置对我来说工作得很好。

模式.xml

<fieldType name="edgytext" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
    <analyzer type="index">
      <tokenizer class="solr.KeywordTokenizerFactory" />
      <filter class="solr.LowerCaseFilterFactory" /> 
  <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
<analyzer type="query">
 <tokenizer class="solr.KeywordTokenizerFactory" /> 
 <filter class="solr.LowerCaseFilterFactory" />
 <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="15" side="front" />    
</analyzer>
<field name="title" type="edgytext" indexed="true" stored="true" omitNorms="true" omitTermFreqAndPositions="true"/>
<field name="empname" type="edgytext" indexed="true" stored="true" omitNorms="true" omitTermFreqAndPositions="true" />

<field name="autocomplete_text" type="edgytext" indexed="true" stored="false"  multiValued="true" omitNorms="true" omitTermFreqAndPositions="false" />
<copyField source="empname" dest="autocomplete_text"/>

<copyField source="title" dest="autocomplete_text"/> 

网址:$http://local:8080/test/suggest/?q=michael

   Result :
   <?xml version="1.0" encoding="UTF-8" ?> 
<response>
<lst name="responseHeader">
<int name="status">0</int> 
<int name="QTime">1</int> 
</lst>
<result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str>
  <str>michael w. smith featuring andrae crouch</str> 
</arr>
</lst>
<str name="collation">michael bolton</str> 
</lst>
</lst>
</response>

对我来说效果很好。当我搜索“michael f”时,得到如下响应。 (http://local:8080/test/suggest/?q=michael f)

回复 :

 <?xml version="1.0" encoding="UTF-8" ?> 
 <response>
 <lst name="responseHeader">
 <int name="status">0</int> 
 <int name="QTime">1</int> 
 </lst>
 <result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str> 
  <str>michael w. smith featuring andrae crouch</str> 
   .....
</arr>
</lst>
<lst name="f">
<int name="numFound">10</int> 
<int name="startOffset">8</int> 
<int name="endOffset">9</int> 
<arr name="suggestion">
  <str>f**k the facts</str> 
  <str>fairest lord jesus</str> 
  <str>franz ferdinand</str> 
  <str>françois rauber</str> 
  .........
</arr>
</lst>
<str name="collation">michael bolton f**k the facts</str> 
</lst>
</lst>
</response>.

所以当我用“michael f”搜索时,我应该只得到“michael foret”和“michaelforce”。传入的数据以“f”开头。如果我的 solr 配置设置有任何问题,请建议我。

提前致谢,

Anil.


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 N Grams 在 solr 中进行建议(自动完成)搜索(建议组件的一种排序规则) 的相关文章

  • 在 Rails 中实现多个字段的自动完成

    我有一个应用程序 它实现了群组功能 每个小组有n名成员 此外 每个组都有一个组特定的个人资料图片 我已经能够实现组功能的自动完成 仅记住组名称 我已经参考了以下教程 http railsforum com viewtopic php id
  • 如何使用 lucene 查询找到空的 Solr 文档字段

    我有一些这样的文件
  • 在 Solr 中实现术语关联挖掘的最简单方法是什么?

    关联挖矿似乎为检索提供了良好的结果相关术语在文本语料库中 有很多关于这个主题的著作 其中包括著名的LSA http en wikipedia org wiki Latent semantic analysis方法 挖掘关联最直接的方法是构建
  • Solr 索引时间提升 VS 查询时间提升?

    问题 1 我们可以只进行查询时间提升 使用 dismax 而不在索引时间提及提升值吗 问题 2 与查询时间提升相比 索引时间提升有何优点 缺点 反之亦然 查询时间和索引时间提升 在索引时 您可以选择提升特定文档 整个文档或仅一个字段 它作为
  • jQuery 变量在定义时声称它是未定义的

    我试图在同一页面上有两个自动填充文本框 一个用于手机型号 input1 一个用于固件 input2 当两者都填充时 我希望显示一个带有ID input1input2 的div 但是当在input1 中输入值时 它声称phone 的变量未定义
  • yii2 中的自动完成

    在 Yii2 中 我希望当用户开始输入时 我的输入字段之一能够自动完成 下面是我的代码 它使用Jui Autocomplete 这是行不通的 当我打印我的数组时 我就像 Array 1 gt abc 2 gt xyz 4 gt pqr
  • jQuery 插件,用于带有自动建议的逗号分隔标签的简单输入框

    我正在寻找具有以下功能的 jQuery 插件 它应该显示一个输入框 其中的标签将如下所示 蜜蜂 珠子 胡须 当用户键入标签时 它应该显示一个自动建议框供用户输入 显示应该简单明了 只是纯文本逗号分隔标签 它应该允许包含空格键的标签 例如 有
  • 用于标签搜索的数据存储解决方案

    我已经按照预先计算的分数订购了数百万件商品 每个项目都有许多布尔属性 假设总共有大约一万个可能的属性 每个项目有十几个 我希望能够请求实时 几毫秒 给定任意属性组合的前 n 个项目 您会推荐什么解决方案 我正在寻找可扩展性极强的东西 我们目
  • Eclipse 中的“自动插入通用前缀”有什么作用?

    我一直在寻找一种改进 Eclipse 中自动完成功能的方法 并且在首选项窗口的 Java gt 编辑器 gt 内容辅助部分中发现了此首选项设置 自动插入公共前缀 我想知道它有什么作用 因为我没有感觉到任何区别 帮助说 如果启用 代码辅助将自
  • Solr/Solrj 分页

    我正在创建的 Web 应用程序中使用 solr 和 solrj 来实现索引和搜索功能 我的请求处理程序在 solrconfig xml 中配置如下
  • Eclipse 自动完成更改变量名称

    只是一个愚蠢的问题 但很难搜索 因为有很多关于 Eclipse 自动完成的主题 而且很难找到与我的问题匹配的内容 所以问题是 如果我写 MyClass MyVarName 然后按空格键 添加 new MyClass Eclipse 自动添加
  • 自动完成功能在特定层次结构的 XML 文件中不起作用

    特别是 XML 节点层次结构 例如 DrawerLayout gt RelativeLayout gt ImageButton 自动完成功能无法按预期工作 建议列表包含无效项目 例如 android src里面没有显示ImageButton
  • Solr 中的拼写检查中阈值频率不起作用

    我得到stuck在中间Solr 我只需要最流行的词 w r t query 我用过语音过滤器双方索引和查询但这里的problem是它正在给予术语太多 我只需要几个术语这是非常具体的query 模式 xml
  • 为 .API 文件启用自动完成功能?

    有谁知道如何使用 N 站点上提供的 API 文件在 Notepad 中自动完成工作 在 API 文件夹中具有 XML 自动完成文件的语言中 自动完成功能工作得很好 但对于使用 API 文件的语言 ruby AutoIt 等 完全不起作用 根
  • jQuery 自动完成显示值而不是标签

    我在用jQuery ui 自动完成 http api jqueryui com autocomplete 这是我的使用方法
  • Android 操作栏 SearchView 作为自动完成功能?

    我在操作栏中使用 SearchView 我想在搜索视图上使用自动完成功能来从数据库中获取结果 这可能吗 或者我是否需要使用自定义文本框 然后添加自动完成功能 所以我只需要对 v7 版本执行此操作 并沮丧地发现我不能简单地使用 ArrayAd
  • 禁用 Chrome 66 的自动完成功能

    在 chrome 66 中 我找不到像以前那样禁用文本输入自动完成功能的方法 我试过autocomplete off and autocomplete new password 我认为它在 Chrome 63 之前一直有效 但现在不再有效了
  • Solr协会

    最近几天我们正在考虑使用 Solr 作为我们选择的搜索引擎 我们需要的大多数功能都是开箱即用的或者可以轻松配置 然而 我们绝对需要的一项功能似乎在 Solr 中被很好地隐藏 或缺失 我将尝试用一个例子来解释 我们有很多实际上是企业的文件
  • 是否可以自定义 drupal 节点引用并传递您的搜索和来自另一个字段的参数

    我正在尝试在 drupal 中创建一个带有节点引用字段的定制表单 我想为节点引用自动完成添加一些额外的功能 我创建了一个视图 其中包含一个参数 我希望能够将下拉列表中的参数以及键入的文本传递到自动完成脚本中 有谁知道我该如何开始 FIELD
  • Data-config.xml 和 mysql - 我只能加载“id”列

    我在 Windows Server 2012 上安装了 Solr 5 0 0 我想将表中的所有数据加载到 solr 引擎中 我的 data config xml 如下所示

随机推荐

  • 安装 VS 2012 Ultimate 期间出现 .NET 4.5 致命错误

    当我尝试安装时VS 2012 终极版 on Windows 7 32 位 SP1 但它给了我下一个错误 Microsoft NET Framework 4 5 安装期间出现致命错误 我的安装日志 我的 vslog cab 文件 我尝试独立安
  • jQuery 标准和最佳实践 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从 POJO 生成 Map

    我有一个 POJO 和一个 当前尚未构建 将返回它的列表的类 我想自动生成 POJO 作为地图访问所需的代码 这是一个好主意吗 是否可以自动执行 我是否需要为每个我想以这种方式处理的 POJO 手动执行此操作 谢谢 安迪 您可以使用Comm
  • 聚合初始化,将成员指针设置为相同的结构成员

    是否可以使用聚合初始化来制作指针aptr指向a这是同一组织的成员struct struct S int a int aptr int main S s a 3 aptr a point aptr to a return 0 问题是针对双方的
  • IDEA 插件:PersistentStateComponent 不持久化 xml

    我无法让我的插件保持其状态 文件 configProvider xml 永远不会被创建 也不会 State注释有任何效果 显然 这是plugin xml中的相关部分
  • AppBar 与其他元素重叠

    我开始使用 React Material UI 并且对 CSS 等也很陌生 我有一个带有 APPBar 的简单页面布局 不幸的是 这个 AppBar 与本应位于其下方的元素重叠 我找到了这个答案 AppBar Material UI 问题
  • 在 Python 中使用 Mechanize 时出现解析错误

    我尝试在 Dell Kace 票务页面上选择一个表单 但收到解析错误 我正在用 python 编程并一直在使用 mechanize 我能够成功登录该网站 我读到你也许可以使用像 Beautiful soup 这样的 html 清理器来解决这
  • numpy 用 nan 填充数组,却得到奇怪的浮点数

    我正在尝试用以下内容填充数组np nan import numpy as np print np version version 1 10 2 combine lambda real theo np vstack theo np pad r
  • Xcode Swift 包管理器错误 - 找不到存储库

    我找不到任何与此相关的问题 但我已经遇到过这个问题两次 基本上 当我尝试通过 SPM 添加新包时 有时会收到以下错误 The repository could not be found Make sure a valid repositor
  • 计算机视觉:Opencv 计算大圆内的小圆

    Here is the image on which i have been working on 目标是检测大圆圈内的小圆圈 currently what i have done is converted the image to gra
  • 热部署 Java EAR 以最大限度地减少或消除服务器上应用程序的停机时间?

    我听说这就是 JavaRebel 所做的事情 但是还有其他好方法来部署新版本的 EAR 同时允许用户在以前的版本上保持活动状态吗 我们使用 JBoss 作为应用程序服务器 这不是 JavaRebel 所做的 JavaRebel 根据描述 热
  • 实体框架错误:“在当前工作区中找不到为 FunctionImport 指定的容器‘XXXX’。”

    我正在执行这个 EntityConnection entityConnection EntityConnection context Connection EntityCommand command entityConnection Cre
  • 奇怪的 std::bad_alloc

    据我所知 抛出 std bad alloc 的原因有以下三个 该进程请求的内存超过了可以提供的内存 地址空间过于碎片化 无法满足对大块连续内存的请求 堆管理数据结构已损坏 我们的代码遇到了 std bad alloc 但上述原因似乎都不适用
  • 在 symfony 4 中使用未定义常量 XML_PI_NODE

    我在 php7 2 中遇到此错误 我正在使用 symfony 4 Warning Use of undefined constant XML PI NODE assumed XML PI NODE this will throw an Er
  • 使用 Pester 测试强制参数

    我正在尝试找出如何对缺少的参数进行 Pester 测试 查找 Waldo Tests ps1 here Split Path Parent MyInvocation MyCommand Path sut Split Path Leaf My
  • 检测 iPhone/iPod Touch 配件

    是否可以检测 iPod Touch iPhone 是否连接了耳机或其他配件 我正在构建一个需要麦克风的应用程序 并且需要知道 iSomething 是否已连接 无论是通过底座连接还是使用耳机端口 例如使用 Apple 的内联耳机 麦克风配件
  • Firefox 17 中的 UniversalXPConnect 权限错误

    我有一个小型 Web JS 可以将一些表单数据复制到 iframe 或从 iframe 插入一些表单数据 但它在 Firefox 17 中不起作用 我正在使用以下代码 netscape security PrivilegeManager e
  • Redux 中实际如何使用状态不变性?

    我试图了解 Redux 中实际上 如果有的话 如何使用不变性 我发现的每个教程 文章 文档都指出 reducer 永远不应该更改状态对象 而是创建已更改数据的新副本 即 reducers 必须是纯函数 我理解这一点 但我找不到任何地方解释该
  • 在 C# 中将短[]数组写入文件的最佳方法是什么?

    我有一组短裤 short 我需要将其写入文件 最快的方法是什么 使用二进制编写器 static void WriteShorts short values string path using FileStream fs new FileSt
  • 使用 N Grams 在 solr 中进行建议(自动完成)搜索(建议组件的一种排序规则)

    我正在使用 EdgeNGrams 使用 solr 进行自动完成搜索 我使用 solr 3 3 我想使用建议器中的排序规则作为多术语搜索的自动完成解决方案 不幸的是 建议器仅返回多术语搜索的一种排序规则 如果用户正在搜索员工姓名 则应应用自动