繁体   English   中英

SOLR中的默认英语词干

[英]Default english stemming in SOLR

我正在尝试使用SOLR来制作简单的英语单词,但是由于某种原因我没有成功。

我的xml文档看起来像这样:

<add><doc>
  <str name="id">1</str>
  <str name="name">walked</str>
</doc>
<doc>
  <str name="id">2</str>
  <str name="name">walking</str>
</doc>
<doc>
  <str name="id">3</str>
  <str name="name">walks</str>
</doc>
</add>

在模式XML中,我将名称类型更改为“ text_en”

<field name="name" type="text_en" indexed="true" stored="true"/>

我没有做任何其他更改,我认为它应该可以工作(我尝试了一切:根据各种教程等为它们创建新的字段和新的fieldTypes,但是出现了问题,我不知道是什么)

还有一点,如果我尝试在SOLR( http://localhost:8983/solr/#/collection1/analysis )的分析部分中分析这些单词,它将很好地工作。

例如:

字段值(索引)和字段值(查询)我输入值:步行。 我希望PorterStemFilter部分中的文本字段等于“ walk”。

但是当我在查询部分进行查询遍历时,它匹配0个值 我希望它匹配所有值(步行,步行,步行)查询网址: http://localhost:8983/solr/collection1/select?q=*walking*&wt=json&indent=true

编辑

PS我多次重新索引,这不是问题。

编辑#2

非常感谢你。 现在一切都清楚了。 我将解释我今天不了解的内容,也许对某人有用。

如果您的网址是这样的

http://localhost:8983/solr/collection1/select?q=walking&wt=json&indent=true

您正在使用字段:“文本”(默认字段是文本),因为查询中没有指定的字段。

 <field name="text" type="text_en" indexed="true" stored="false" multiValued="true"/>

如果要阻止特定字段而不是“文本”,则必须在url中指定它。 例如字段“名称”:

http://localhost:8983/solr/collection1/select?q=name:walking&wt=json&indent=true

还有一点不要忘记。 要阻止的字段属性“索引”必须设置为“ true”。 感谢帮助!

您的查询看起来不正确,请尝试这样查询:

http://localhost:8983/solr/collection1/select?q=name:walking&wt=json&indent=true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM