问题标签 [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.
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) 消耗所有东西,但不知道如何解决这个问题。
我做错了什么?
提前致谢!
solr - Solr 查询:单个术语与短语
在我们基于 Solr 的搜索中,我们从使用短语开始。例如,当用户键入
那么 Solr 查询将是
我们现在要删除停用词。使用默认的 StopFilterFactory,查询
将匹配包含“blue dress”或“the blue dress”的文档。
但是,在键入时
那么它不匹配包含“蓝色连衣裙”的文档。
我开始怀疑我们是否不应该只使用单个词进行搜索。也就是将上面的用户搜索转化为
不过,我有点不愿意这样做,因为它似乎在做 StandardTokenizerFactory 的工作。
这是我的 schema.xml:
标题和描述字段都是text_general类型。
单项搜索是 Solr 中搜索的标准方式吗?在调用 Solr 之前,我是否通过对单词进行标记来暴露自己的问题(可能是性能问题)?也许从单个术语与短语的角度思考是错误的,我们应该让用户来决定?
solr - Solr - dismax 解析器的 mm 参数
我在Solr
我的一个项目中使用 5.2.1,对/解析器的mm
参数有一些疑问。dismax
edismax
问题:
- 不
mm
考虑总输入项计数吗?文档说是,但是当我将其设置为 3 并输入单个术语时,它仍然可以获得记录,因此似乎与输入术语总数无关。 - 的默认值是
mm
多少?文档说它是100%
,但在我的查询测试中,它似乎是1
。顺便说一句,我没有找到mm
insolrconfig.xml
或schema.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 个词new
和york
,查询结果为:
- 不指定
mm
,返回 3 条记录, mm
= 2,返回1条记录,mm
= 3,也返回 1 条记录,
所以,我想它会在查询之前首先将 mm 更改为 max 项。
mysql - Solr 搜索确切的短语/子字符串
我在工作中使用 solr,它非常棒。但是,我无法生成更详细的搜索结果。
我正在按名称、品牌、性别和类别(正装鞋、夹克等)搜索产品。品牌存在于“品牌”数据库表中,类别和性别也是如此。产品存在于“产品”数据库表中,该表与 Brands、Category 和 Genders 表具有外键。
我正在将所有这些加载到 solr 中,我可以毫无困难地对它们进行加权排名搜索。这将给出最相似的产品,按某些领域进行权衡。我接下来要做的是从每个字段中找到任何搜索字符串的完全匹配项。例如:
搜索字符串:“Michael Kors 浅绿色男士正装鞋”
应该匹配:
品牌:
- 迈克尔·科尔斯
颜色:
- 浅绿色
- 绿色的
性别:
- 男士
类别:
- 礼服鞋
- 鞋
然后我可以进行更严格但分类的相交搜索。例如,所有 [浅绿色] AND [michael kors] AND [Dress Shoes OR Shoes] 的产品
谢谢 :)
solr - 使用通配符的 solr 搜索不返回仅带有前缀文本的文档
我正在使用通配符对A进行 Solr edismax 搜索,希望返回“A”以及它后面的任何代码查询示例:
我得到的是 [{A.},{A..},{A...}]
我希望能回来 [{ A },{A.},{A..}]
为什么没有返回A作为结果?
search - Solr edismax 解析器和多字段搜索
我使用edismax查询解析器来处理针对Solr 4.10.3服务器的用户查询。
我将q.op参数配置为AND并完全禁用mm参数,以便仅达到 100% 匹配。
当用户在单个字段中搜索多个术语时,一切正常。
例如,查询food:(beer cola Pizza)仅返回那些在food字段中包含所有术语beer、cola和Pizza的文档,这是预期的行为。
但是当用户在多个字段中搜索时,Solr 似乎忘记了q.op配置并且表现得好像参数设置为OR。
例如,查询food:(beer cola Pizza) AND color:(green yellow blue)返回所有那些在字段food中包含术语beer、cola 或 Pizza之一的文档以及包含术语green、yellow OR之一的文档字段颜色为蓝色,这不是预期的行为。
一种解决方法是使用+ 运算符明确地准备每个术语,如下所示:food:(+beer +cola +pizza) AND color:(+green +yellow +blue)。
但是我需要在我们的 java-webapplication 中添加这个运算符,这是一种“硬代码”功能。当用户决定将q.op运算符配置回OR时,我认为硬编码+会导致问题。
有没有办法通过配置达到预期的搜索结果?
solr - 在 Solr 中,如何将 edismax 与过滤查询一起使用(但没有默认字段)?
我有一个启用了 faceting 的 edismax 查询。我没有指定默认字段(无论是在 select 子句中还是在 solrconfig.xml 中),因为我只想搜索在 'qf' 参数中指定的字段。(我的印象是,如果我确实指定了一个默认字段,那么该字段也会被考虑在内)。
这是查询:
到目前为止,一切都按预期工作:我得到了一些结果,也有一些来自分面搜索的结果,例如
- “乌兹鲁汶” (18)
- “OLV 阿尔斯特” (8)
- ...
当我现在单击其中一个组织时,我只想在属于该组织的一组文档中进行搜索,因此使用了过滤器查询。但是,当我添加这样一个“filterQuery”(fq)时,Solr 抱怨说
查询中没有指定字段名称,也没有通过“df”参数指定默认值。
那么这是否意味着我必须添加某种“包罗万象”的默认字段?但这似乎不合逻辑,因为所有搜索字段都已在“qf”中指定?
这是我的查询:
这是查询的输出:
solr - 如何在 Solr 中以特定的列顺序获取相关搜索结果。
我想将我的 Solr4.7.2 结果按特定的相关顺序分组,这样我就有 3 列,即标题、摘要和内容,我正在对这些列进行 solr 搜索。
目前我正在通过执行此查询来使用简单查询解析器。
它通过搜索字符串“2016”向我显示结果
现在我想以一种方式对我的结果进行分组,确切的标题匹配应该首先以相关性顺序显示>然后是精确摘要匹配>然后是精确内容精确匹配。在另一组中,它应该显示较少得分的磁贴 > 摘要 > 内容。
对于前。预期结果应该是
我尝试通过应用 qf=title^2 摘要内容来使用 dismax 查询解析器,但它没有显示任何结果。
solr - solr edismax 搜索包含子字符串的单词
使用 eDisMax 和 SOLR 5.2.1 搜索字符串,当我将q
参数设置为该字符串时,SOLR 仅匹配包含该字符串作为整个单词的字段。例如,
q=bc123
将匹配“aa-bc123”但不匹配“aabc123”。如果我*
在短语之前或之后添加字符,而不是匹配搜索,则必须有尾随和前导字符。例如,q=*bc123*
将匹配“abc123a”但不会匹配“bc123”。
问题是——什么查询字符串将匹配包含搜索词的词,有或没有尾随/前导字符?
请注意:
有多个字段要匹配,使用
qf
参数定义qf=字段1^4 字段2^3 字段2^2 ...
搜索可能包含多个单词,例如。因为
q=abc def
我想要同时包含包含“abc”的单词和包含“def”的单词的字段,例如使用q.op=AND
我曾尝试使用模糊搜索,但我得到了不同程度的误报或遗漏结果,具体取决于阈值。
solr - 扩展的 Dismax 查询解析器避免用单个空格替换多个空格
我在我们的设置中使用扩展 Dismax 查询解析器。我正在运行以下查询以获取与某家公司相关的文档
对于我们的索引逻辑的一些问题,我们在这家公司中有多个空格,名称为宝洁公司
当我运行上面的查询时,它没有给出任何结果,因为 edismax 解析器正在用单个空格替换多个空格。以下是调试输出的片段
我使用文件类型作为field company的lower_string。以下是分析器的定义。
关于如何告诉 edisMax 解析器不要替换多个空格的任何建议?