问题标签 [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.

0 投票
0 回答
66 浏览

solr - Solr EDisMax 问题

我试图从索引中获取一些文档,但没有运气。

我有这样的文件

如果您注意到,标题会显示“事物”。该字段类型为“text_es”,描述如下:

如果我进行以下搜索:

http://localhost:8983/solr/select/?q=thing&defType=edismax&qf=title^20.0+text^0.3

它什么也不返回。它适用于 Solr 3.6,但不适用于 Solr 5.2。我正在使用 Solarium (PHP) 消耗所有东西,但不知道如何解决这个问题。

我做错了什么?

提前致谢!

0 投票
2 回答
1571 浏览

solr - Solr 查询:单个术语与短语

在我们基于 Solr 的搜索中,我们从使用短语开始。例如,当用户键入

那么 Solr 查询将是

我们现在要删除停用词。使用默认的 StopFilterFactory,查询

将匹配包含“blue dress”或“the blue dress”的文档。

但是,在键入时

那么它不匹配包含“蓝色连衣裙”的文档。

我开始怀疑我们是否不应该只使用单个词进行搜索。也就是将上面的用户搜索转化为

不过,我有点不愿意这样做,因为它似乎在做 StandardTokenizerFactory 的工作。

这是我的 schema.xml:

标题和描述字段都是text_general类型。

单项搜索是 Solr 中搜索的标准方式吗?在调用 Solr 之前,我是否通过对单词进行标记来暴露自己的问题(可能是性能问题)?也许从单个术语与短语的角度思考是错误的,我们应该让用户来决定?

0 投票
2 回答
5128 浏览

solr - Solr - dismax 解析器的 mm 参数

我在Solr我的一个项目中使用 5.2.1,对/解析器的mm参数有一些疑问。dismaxedismax

问题:

  • mm考虑总输入项计数吗?文档说是,但是当我将其设置为 3 并输入单个术语时,它仍然可以获得记录,因此似乎与输入术语总数无关。
  • 的默认值是mm多少?文档说它是100%,但在我的查询测试中,它似乎是1。顺便说一句,我没有找到mminsolrconfig.xmlschema.xml.

有什么帮助吗?谢谢。


@更新:

第一个问题的查询网址:

http://localhost:8983/solr/demo/select?q=new+york&start=0&wt=json&indent=true&defType=edismax&qf=title&mm=3&stopwords=true&lowercaseOperators=true

有 2 个词newyork,查询结果为:

  • 不指定mm,返回 3 条记录,
  • mm= 2,返回1条记录,
  • mm= 3,也返回 1 条记录,

所以,我想它会在查询之前首先将 mm 更改为 max 项。

0 投票
4 回答
1287 浏览

mysql - Solr 搜索确切的短语/子字符串

我在工作中使用 solr,它非常棒。但是,我无法生成更详细的搜索结果。

我正在按名称、品牌、性别和类别(正装鞋、夹克等)搜索产品。品牌存在于“品牌”数据库表中,类别和性别也是如此。产品存在于“产品”数据库表中,该表与 Brands、Category 和 Genders 表具有外键。

我正在将所有这些加载到 solr 中,我可以毫无困难地对它们进行加权排名搜索。这将给出最相似的产品,按某些领域进行权衡。我接下来要做的是从每个字段中找到任何搜索字符串的完全匹配项。例如:

搜索字符串:“Michael Kors 浅绿色男士正装鞋”

应该匹配:

品牌:

  • 迈克尔·科尔斯

颜色:

  • 浅绿色
  • 绿色的

性别:

  • 男士

类别:

  • 礼服鞋

然后我可以进行更严格但分类的相交搜索。例如,所有 [浅绿色] AND [michael kors] AND [Dress Shoes OR Shoes] 的产品

谢谢 :)

0 投票
0 回答
118 浏览

solr - 使用通配符的 solr 搜索不返回仅带有前缀文本的文档

我正在使用通配符对A进行 Solr edismax 搜索,希望返回“A”以及它后面的任何代码查询示例:

我得到的是 [{A.},{A..},{A...}]

我希望能回来 [{ A },{A.},{A..}]

为什么没有返回A作为结果?

0 投票
0 回答
636 浏览

search - Solr edismax 解析器和多字段搜索

我使用edismax查询解析器来处理针对Solr 4.10.3服务器的用户查询。

我将q.op参数配置为AND并完全禁用mm参数,以便仅达到 100% 匹配。

当用户在单个字段中搜索多个术语时,一切正常。

例如,查询food:(beer cola Pizza)仅返回那些在food字段中包含所有术语beercolaPizza的文档,这是预期的行为。

但是当用户在多个字段中搜索时,Solr 似乎忘记了q.op配置并且表现得好像参数设置为OR

例如,查询food:(beer cola Pizza) AND color:(green yellow blue)返回所有那些在字段food中包含术语beercola Pizza之一的文档以及包含术语greenyellow OR之一的文档字段颜色为蓝色,这不是预期的行为。

一种解决方法是使用+ 运算符明确地准备每个术语,如下所示:food:(+beer +cola +pizza) AND color:(+green +yellow +blue)

但是我需要在我们的 java-webapplication 中添加这个运算符,这是一种“硬代码”功能。当用户决定将q.op运算符配置回OR时,我认为硬编码+会导致问题。

有没有办法通过配置达到预期的搜索结果?

0 投票
1 回答
2427 浏览

solr - 在 Solr 中,如何将 edismax 与过滤查询一起使用(但没有默认字段)?

我有一个启用了 faceting 的 edismax 查询。我没有指定默认字段(无论是在 select 子句中还是在 solrconfig.xml 中),因为我只想搜索在 'qf' 参数中指定的字段。(我的印象是,如果我确实指定了一个默认字段,那么该字段也会被考虑在内)。

这是查询:

到目前为止,一切都按预期工作:我得到了一些结果,也有一些来自分面搜索的结果,例如

  • “乌兹鲁汶” (18)
  • “OLV 阿尔斯特” (8)
  • ...

当我现在单击其中一个组织时,我只想在属于该组织的一组文档中进行搜索,因此使用了过滤器查询。但是,当我添加这样一个“filterQuery”(fq)时,Solr 抱怨说

查询中没有指定字段名称,也没有通过“df”参数指定默认值。

那么这是否意味着我必须添加某种“包罗万象”的默认字段?但这似乎不合逻辑,因为所有搜索字段都已在“qf”中指定?

这是我的查询:

这是查询的输出:

0 投票
0 回答
87 浏览

solr - 如何在 Solr 中以特定的列顺序获取相关搜索结果。

我想将我的 Solr4.7.2 结果按特定的相关顺序分组,这样我就有 3 列,即标题、摘要和内容,我正在对这些列进行 solr 搜索。

目前我正在通过执行此查询来使用简单查询解析器。

它通过搜索字符串“2016”向我显示结果

现在我想以一种方式对我的结果进行分组,确切的标题匹配应该首先以相关性顺序显示>然后是精确摘要匹配>然后是精确内容精确匹配。在另一组中,它应该显示较少得分的磁贴 > 摘要 > 内容。

对于前。预期结果应该是

我尝试通过应用 qf=title^2 摘要内容来使用 dismax 查询解析器,但它没有显示任何结果。

0 投票
1 回答
315 浏览

solr - solr edismax 搜索包含子字符串的单词

使用 eDisMax 和 SOLR 5.2.1 搜索字符串,当我将q参数设置为该字符串时,SOLR 仅匹配包含该字符串作为整个单词的字段。例如, q=bc123将匹配“aa-bc123”但不匹配“aabc123”。如果我*在短语之前或之后添加字符,而不是匹配搜索,则必须有尾随和前导字符。例如,q=*bc123*将匹配“abc123a”但不会匹配“bc123”。

问题是——什么查询字符串将匹配包含搜索词的词,有或没有尾随/前导字符?

请注意:

  1. 有多个字段要匹配,使用qf参数定义

    qf=字段1^4 字段2^3 字段2^2 ...

  2. 搜索可能包含多个单词,例如。因为q=abc def我想要同时包含包含“abc”的单词和包含“def”的单词的字段,例如使用q.op=AND

  3. 我曾尝试使用模糊搜索,但我得到了不同程度的误报或遗漏结果,具体取决于阈值。

0 投票
0 回答
290 浏览

solr - 扩展的 Dismax 查询解析器避免用单个空格替换多个空格

我在我们的设置中使用扩展 Dismax 查询解析器。我正在运行以下查询以获取与某家公司相关的文档

对于我们的索引逻辑的一些问题,我们在这家公司中有多个空格,名称为宝洁公司

当我运行上面的查询时,它没有给出任何结果,因为 edismax 解析器正在用单个空格替换多个空格。以下是调试输出的片段

我使用文件类型作为field company的lower_string。以下是分析器的定义。

关于如何告诉 edisMax 解析器不要替换多个空格的任何建议?