【问题标题】:solr unable to search with exact valuesolr 无法搜索精确值
【发布时间】:2013-05-21 15:42:41
【问题描述】:

我正在使用 Solr 4.1.0,但遇到了一个奇怪的问题。如果我给出一个值来搜索一个字段,即使它是精确的或涉及通配符,它​​也会给我 0 个搜索结果。另一方面,如果我只给出字段名称和 * 代替值,我会得到所有结果。

另外,如果我在文本字段中搜索,即我复制了所有字段的值,它会给我正确的输出。默认情况下,文本是所有字段的全部内容。 feature 是一个具有 Butter 值的字段。

所以现在,这里发生的情况是,如果我尝试在实际字段中查找具有确切值的实际字段,甚至使用开头字母和 *,如果我在文本字段中搜索,它不会给我一个值,这是一个包罗万象的字段,我能够检索该值。虽然如果我尝试使用 * 在特征字段中查找,它会正确地给我完整的结果列表。

您可以查看text:Butterhere的日志、feature:Butterhere的日志、feature:B*here的日志和feature:*here的日志

我只在这个特定领域面临这个问题。有什么指针可以指出这个奇怪问题背后的原因是什么?

【问题讨论】:

  • 能否请您从 schema.xml 文件中为您的特征字段添加字段定义和相应的 fieldType。
  • 嗨@paige!感谢您在这里帮助我。在我的情况下,给定的字段是动态的,这是字段定义: type="text_general" indexed="true" stored="true" multiValued="true"

标签: apache configuration solr lucene indexing


【解决方案1】:

如果您不使用字段名称进行搜索,Solr 将在默认搜索字段中进行搜索。
因此,请确保将要搜索的字段标记为默认字段。
如果您使用 dismax 查询处理程序,您可以将它们添加到 qf 参数。

此外,对于通配符查询,请检查 [Analyzers][1]

On wildcard and fuzzy searches, no text analysis is performed on the search word.

由于在查询时没有对通配符搜索进行任何分析,因此使用小写字母,因此在查询时不会应用词干提取,而只会在索引时应用。

【讨论】:

  • 嗨@Jayendra!但我使用的是字段名称,请参阅 feature 是字段的名称。
  • 看不到日志。 text:Butter 没有返回任何结果??并且黄油在文本字段中被索引??什么是字段类型 text_general 定义?你可以发表你的问题吗?
  • 特征字段的字段类型是什么?你能发布你的 schema.xml 吗?
  • 恐怕我无法复制完整的模式文件,但它是默认的 solr schema.xml,只添加了一些字段。这是特征字段的字段定义,它是一个动态字段: type="text_general" indexed="true" stored="true" multiValued="true"
  • 动态字段是如何映射的???特征字段有任何数据吗?或者一些覆盖其他指令的copyfield指令?如果不研究架构,我们不会有太大帮助。
猜你喜欢
  • 2011-02-07
  • 2014-06-09
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
相关资源
最近更新 更多