2013-07-17 155 views
0

我要寻找一个解决方案扩大我目前Apache Solr实现(4.x的),使得它可以被用来支持大量的语言。我想采用多核方法,并已经建立了自己的solr,以便它具有英文核心以及日文核心(对于初学者)。为了挑战事情,我得到了包含solr将用于索引的数据的n个.xml文件。所以要明确:语言在Apache Solr实现

我有n个语言和我有N个.xml文件(每种语言一个.XML)。每个.xml文件在标记方面都是相同的,只有原始文本不同。

我的问题是,我似乎无法弄清楚如何发帖说english.xml文件以严格的英文核心和严格的japanese.xml文件到日本的核心,所以,当我在访问我页面:

www.example.com/ 我们 /index.html,我在看的english.xml索引的结果,并且

www.example.com/ JP /指数.html为我提供了japanese.xml索引结果。

有真的只需要为一个模式,因为不同的语言.xml文件的结构相同tagwise,但我复制所有的人,因为每个模式文件将为其各自的语言进行优化。

如果(TLDR){

How would I independently post: 
english.xml -> core-english 
japanese.xml -> core-japanese 


Or what would be a better approach that gives me 
facet and search independent groups so that I can localize my pages? 

}

很显然,我不希望有Solr的运行n个不同的实例。

回答

1

本杰明,你的方法是完美的。多核是一个很好的方法。

假设你的服务器是在IP 10.10.10.10,和Solr是在端口8983上运行,那么你的多核应该是这个样子:

10.10.10.10:8983/solr/us 

10.10.10.10:8983/solr/jp 

10.10.10.10:8983/solr/fr 

...等等

夫妇的事情要记:

  • 每个核心将拥有自己的conf文件夹中它
  • 内各conf文件夹,你会有针对该国
  • 域定义solrconfig.xml中,schema.xml中,synonyms.txt以及其他配置文件将成为每一个国家在其架构中指定的不同。XML
  • 如:标题字段将是字段类型text_general为美国而text_fr法国

POSTING XML

这是你将如何发布针对不同的国家不同的XML文件的内容:

美国:

curl http://10.10.10.10:8983/solr/us/update?commit=true -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">1</field><field name="title">First Item</field></doc><doc><field name="id">2</field><field name="title">Second Item</field></doc></add>' 

FR:

curl http://10.10.10.10:8983/solr/fr/update?commit=true -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">1</field><field name="title">premier article</field></doc><doc><field name="id">2</field><field name="title">deuxième article</field></doc></add>' 

JP:

curl http://10.10.10.10:8983/solr/jp/update?commit=true -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">1</field><field name="title">最初の項目</field></doc><doc><field name="id">2</field><field name="title">番目の項目</field></doc></add>' 

正在搜索

您可以通过菊独立搜索每个国家ST查询其核心:

搜索查询美国:

http://10.10.10.10:8983/solr/us/select?query=john 

搜索查询JP:

http://10.10.10.10:8983/solr/jp/select?query=ジョン 
+0

令人惊讶的是明确的答复。 Aujasvi,谢谢你的帮助。 – bneigher

+0

我想我唯一的其他问题是如果我使用post.jar脚本而不是curl,这会有什么不同?我可以使用java -jar post.jar * .xml指定核心吗? – bneigher

+0

使用-Durl参数指定带有post.jar的完整URL。无论如何您必须使用除默认本地主机位置以外的任何内容。有关详细信息和示例,请运行** java -jar post.jar -h **。 –