首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solr索引和多语言数据搜索

Solr索引和多语言数据搜索
EN

Stack Overflow用户
提问于 2014-07-01 11:00:13
回答 1查看 2.7K关注 0票数 2

在我的Solr模式中,索引期间Solr检测被索引数据的语言,并根据所检测到的语言应用不同的索引规则。所有数据都存储在特定于语言的字段中,例如:

  • 英文标题存储在title_en字段中。
  • 西班牙语标题存储在title_es字段中。

-

代码语言:javascript
运行
复制
<field name="title_en" type="text_en" indexed="true" stored="true"/>
<field name="title_es" type="text_es" indexed="true" stored="true"/>

所有搜索都是针对“所有捕获”字段“文本”进行的:

代码语言:javascript
运行
复制
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>

所有特定于语言的字段都复制到"text“字段,以便可用于搜索查询:

代码语言:javascript
运行
复制
<copyField source="title_en" dest="text"/>
<copyField source="title_es" dest="text"/>

我关心的是:,因为"text“字段是自己做索引的,应用"text_general”索引规则,然后进行重新索引,我猜之前针对语言特定字段(title_en、title_es)的所有特定语言索引规则都丢失了。

如果是,那么如何在一个查询中搜索所有数据,同时保留特定于语言的索引?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-03 11:35:42

是的,存储在text (定义为text_general)中的数据只根据该字段的规则进行处理,而不受title_entitle_es的影响。copyField发生在对值的任何处理之前,因为您通常(在本例中)希望在字段上执行不同的标记化和分析。

一个简单的解决方案是查询title_en和title_es字段,如果您想同时搜索这两个字段,可以使用查询字段参数:qf=title_en,title_es。这将根据您的查询搜索已处理内容的英文和西班牙文版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24508603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档