问题标签 [edismax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - Solr edismax 支持哪些正则表达式功能?
正则表达式允许使用如下所示的模式匹配语法。我正在尝试实现一个功能强大的搜索工具,尽可能多地实现这些功能。有人告诉我,edismax 是最灵活的工具。下面哪些模式匹配表达式可以用 edismax 完成?我能比edismax做得更好吗?您能否建议我可以使用哪些过滤器和解析器补丁来实现此功能?如果我认为 Solr 可以在这些类型的搜索中实现可接受的性能(即服务器端处理时间),我是在做梦吗?
来自mysql的正则表达式语法和示例
- ^ 匹配字符串的开头。
'fofo' REGEXP '^fo' => true
- $ 匹配字符串的结尾。
'fo\no' REGEXP '^fo\no$' => true
- * 0-无限通配符。
'Baaaan' REGEXP 'Ba*n' => true
- ? 0-1 通配符。
'Baan' REGEXP '^Ba?n => false'
- + 1-无限通配符。
'Bn' REGEXP 'Ba+n' => false
- | 或者。
'pi' REGEXP 'pi|apa' => true
- ()* 序列匹配。
'pipi' REGEXP '^(pi)*$' => true
- [a-dX], [^a-dX] 字符范围/集
'aXbc' REGEXP '[a-dXYZ]' => true
- {n} 或 {m,n} 基数表示法
'abcde' REGEXP 'a[bcd]{3}e' => true
- [:character_class:]
'justalnums' REGEXP '[[:alnum:]]+' => true
solr - Solr edismax 通配符搜索未找到原始字符串
我的 Solr 索引中有下一个内容:
west indian cherry
in 字段类型text_en
(字段定义见下文)。
当我cherr*
找到匹配项时。
还要在文档中搜索cherri*
匹配词。但
搜索cherry*
不匹配。
我对此表示怀疑PorterStemFilterFactory
,但我不明白为什么(查询分析器与索引分析器相同)。
样本查询
solrconfig.xml
现场分析
指数
询问
solr - 参数 bq 使用分组修改构面计数
我正在使用 solr trunk 搜索一些文档并按类别对它们进行分组,但我必须先按另一个字段对它们进行分组。更具体地说,我正在使用此架构:
- 组件ID:字符串
- 类别:字符串
- 名称:文字
我有两个文件:
- component_id = register1, category = category1, name='foo bar'
- component_id = register1, category = category2, name='foo bar zoo'
我的查询是(仅相关参数):
{edismax qf=name}(foo bar)&group.field=component_id&group.truncate=true&facet.field=category&bq=category:category1^2
方面的结果是:
但是,当我更改 bq 参数时,例如: bq=category:category1^20
分面结果发生了变化:
那可能吗?是错误吗?如果我设置 group.truncate=false 对于这个例子一切都很好,但对于其余的查询它会失败。
感谢和问候
solr - 在 Edismax 中使用前导通配符时,转义的星号/查询标记不会转义
我正在尝试使用 Edismax 解析器在 Solr 文本字段中查找包含星号/查询标记的文档。当我搜索通常的文本 ( fq={!edismax}textfield:*sometext*
) 或什至使用转义 ( ) 搜索任何其他特殊 Lucene 字符fq={!edismax}textfield:*\~*
时,一切正常。
但是,在搜索*
( fq={!edismax}textfield:*\**
) 或?
( fq={!edismax}textfield:*\?*
) 时,这些字符似乎没有被转义,因为所有文档都被返回。我也尝试对转义字符进行URL 编码\%2A
(比如代替\*
),但是结果是一样的。
该问题似乎仅与前导通配符有关,因为fq={!edismax}textfield:\**
andfq={!edismax}textfield:\?*
返回正确的结果,但不(以及fq={!edismax}textfield:*\*
等)。fq={!edismax}textfield:*\?
fq={!edismax}textfield:*sometext\*
如何搜索*
/?
使用带有前导星号通配符的 Edismax?
autocomplete - 基于 edismax 类型错误的 Solr 自动完成
我在尝试基于 edismax 类型实现自动完成时收到以下错误。
架构类型:
架构字段
solr 配置,使用以下带有 edismax 类型的请求处理程序:
仅当查询在单词后包含特定符号(如 + - $ @)时才会发生此错误
львів+в київ+а
任何建议都会很棒
solr - 使用 Solr ExtendedDisMax 查询解析器进行字段搜索
我在将 Solr ExtendedDisMax查询解析器与包含非普通查询中的字段搜索的查询一起使用时遇到问题。
案例如下。
如果我向 SOLR 发送带有参数的 edismax 请求(defType=edismax)
- qf=字段1^10
- q=field2:ciao
- debugQuery=on(用于调试目的)
solr 按照我的预期解析查询,实际上响应的调试部分告诉我
但是,如果我使表达式稍微复杂一点,例如将条件放入括号中: 1. qf=field1^10 2. q=(field2:ciao) 我得到
Solr 似乎无法识别字段语法。
我在文档中没有发现任何关于这种行为的提及,而是他们说
此解析器支持完整的 Lucene QueryParser 语法,包括布尔运算符“AND”、“OR”、“NOT”、“+”和“-”、字段搜索、术语提升、模糊...
这个问题真的让我很恼火,因为即使使用 edismax 解析器,我也想做复杂的布尔和字段查询。
您知道解决此问题的方法吗?
编辑:Solr 版本是 3.6
solr - Solr 请求处理程序可以修改查询字符串吗?
我正在尝试改进使用 StandardRequestHandler 的现有 solr 搜索。我想切换到基于 dismax 的处理程序,但是我需要从“fieldname:value”查询中删除字段名。
是否可以在将q
参数值传递给请求处理程序时对其进行修改?
solr - SOLR 短语查询
使用 SOLR 4.0 搜索并尝试短语查询时,我遇到了一个小问题。
我有一个名为“idx_text_general_ci”的字段,它是由所有字段组成的不区分大小写(全部小写)的字段。
当我尝试搜索一个短语(marine fitter)时,我的 SOLR 拒绝搜索该短语,而是将这个短语分成 2 个单词 -
debugQuery=true 输出如下:
正如您在上面看到的,它将查询分成两部分(idx_text_general_ci:marine 然后 id:fitter)。
我遇到的问题是,我在 idx_text_general_ci 字段中出现了两次“marine fitter”,但它的得分低于出现 3 次“marine”一词的文档。我知道如果我的 SOLR 是按预期使用短语搜索字段,情况将不会如此。
如果我将短语用引号括起来,我得到的结果为零。
任何帮助或朝着正确方向轻推将不胜感激。
提前致谢
亚历克斯
solr - 在 solr 中使用特定字体提升页面
我用 Apache Nutch 抓取了一个网站并将其索引到 Apache Solr。我如何提升以特定字体(如 h2 html 标签或...)存在的查询词的文档?例如我的查询是书,有两页包含书。第一页书在 h1 html 标记中,第二页书在 h2 html 标记中。我希望第二页出现在较高的结果中(有更大的提升)。谢谢
solr - 使用连字符和驼峰式大小写的 Solr 搜索未返回预期结果
我有一个 solr 搜索应用程序,它在字段值既是驼峰形式又是连字符的特定情况下失败。尽管 solr 中的字段分析页面与条款匹配,但这些案例单独工作正常,尽管没有匹配项。
例如:
字段myField包含值camelCase-hyphen。使用驼峰连字符的查询值(注意这不是驼峰大小写),尽管我的 WordDelimiterFilterFactory 设置连接了整个术语,然后是 LowerCaseFilterFactory,但仍然没有匹配项。
分析页面显示匹配,但执行实际搜索不会产生任何结果。见下文。
我的字段类型分析是
我正在使用 Solr 3.6.1 和 edismax。
任何帮助将非常感激。
更新: