我需要现有控制器的多语言URL路由.让我解释一下:
我有一个名为"Product"的控制器和名为"Software"的View; 因此,默认情况下,如果用户输入" http://example.com/en/Product/Software ",请获取正确的内容(实际存在于http://example.com/Product/Software中),
但是,如果另一个用户 - 法国用户 - 键入" http://example.com/fr/Produits/logiciels ",则必须获得控制器并显示正确的内容(同样http://example.com/Product/软件,但有法语文本).
注意:我使用"{language}/{controller}/{action}/{id}"设置路由表
任何其他无效的网址都必须显示404页面.
可能吗?
我想使用solr搜索文章
我有3张桌子:
在solr schema.xml文件中我只是定义与ArticleBase表混合的所有文章字段(在solr上使用一个索引),如下所示:(id,articleBaseId,groupId,...)
问题:管理员想要更改组(ArticleBase),因此我必须更新(或替换)solr中的所有索引文章.对 ?
我只能在solr索引中更新groupId吗?
有解决方案吗?
注意:文章表包含超过2亿篇文章,我只使用solr作为索引(不存储除文章ID之外的任何字段数据)
我开始使用solr索引数据库文章,但是在添加了大约5800万篇文章(以及大约113 GB大小的磁盘)之后,我在tomcat日志错误中收到以下错误消息
注1:我已经将Init内存池设置为256MB,最大内存池:1400MB到tomcat服务器.
注2:我可以发布或搜索文章,但必须等待3分钟才能获得回复.
8-apr-2010 14:27:07 org.apache.solr.common.SolrException log
SEVERE: java.lang.OutOfMemoryError: Java heap space
at org.apache.lucene.util.PriorityQueue.initialize(PriorityQueue.java:89)
at org.apache.lucene.search.HitQueue.<init>(HitQueue.java:67)
at org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:113)
at org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:37)
at org.apache.lucene.search.TopScoreDocCollector$InOrderTopScoreDocCollector.<init>(TopScoreDocCollector.java:42)
at org.apache.lucene.search.TopScoreDocCollector$InOrderTopScoreDocCollector.<init>(TopScoreDocCollector.java:40)
at org.apache.lucene.search.TopScoreDocCollector.create(TopScoreDocCollector.java:100)
at org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:979)
at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:884)
at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:341)
at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:182)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
什么问题 ?
有什么建议吗?
重要问题:为什么solr使用堆内存???
我需要使用linq克隆行.我找到了这个方法:
public static T Clone<T>(this T source)
{
var dcs = new System.Runtime.Serialization
.DataContractSerializer(typeof(T));
using (var ms = new System.IO.MemoryStream())
{
dcs.WriteObject(ms, source);
ms.Seek(0, System.IO.SeekOrigin.Begin);
return (T)dcs.ReadObject(ms);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当尝试克隆行时,比如db1.Persons.First().Clone();
我得到这个例外:"类型'TestLinq.PersonAddress'的对象图包含周期,如果禁用参考跟踪,则无法序列化."
注意:我的表包含1个主键,1个唯一索引包含3个字段
能帮帮我吧
谢谢
哈米德
我在solr(int类型)中有一些特定的id,如1,2,5,11,64589
我想查询像ttp:// localhost:8983/solr/select?q = x:[1,2,5,11,64589],但不起作用(得到错误).怎么办?
注意:我可以使用" OR " 实现,但我想要简单的方法(以及max url char length中的其他问题限制)
我使用solr实现搜索引擎,每天导入最少200万个doc.用户必须尽快搜索导入的文档(近实时).
我使用2个专用的Windows x64和tomcat 6(Solr shard模式).每台服务器,索引约1.2亿doc,约220 GB(总计500 GB).
我想在更新或搜索期间从solr索引文件中获取备份增量.
搜索完成后,找到适用于UNIX的rsync工具和适用于Windows的DeltaCopy(适用于Windows的GUI rsync).但在更新期间得到错误(消失).
如何解决这个问题呢.
注意1:文件大小非常大,文件复制速度很慢.因此我不能用这种方式.
注意2:如果Windows崩溃或硬件重置或任何其他问题,我可以防止更新期间损坏的索引文件吗?
我正在使用正则表达式来删除html文件中的注释标记(模式是:" <!--(.|\s)*?--!?>")
但有些网站没有使用标准的html标签,示例:
<script language="javascript">
<!--
js code ...
</script>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的正则表达式将挂起,并且try-catch也不会捕获错误.我该如何解决这个问题?
在使用此链接配置演示后,我遇到运行演示站点(或管理员)的问题
我收到了这个错误
***************************申请失败
描述:
org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration中的构造函数需要一个bean,但是找到了3个: - exporter:在类路径资源中定义[bl-common-applicationContext-mbeans.xml] - blAutoDDLStatusExporter:在类路径资源中定义[BL-共的applicationContext-mbeans.xml] - hibernateExporter:类路径资源定义[BL-共的applicationContext-mbeans.xml]
行动:
考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应该使用的bean
我该如何解决这个问题呢?
请注意我使用的是最新的Broadleaf Commerce版本(5.2)
solr ×4
lucene ×3
c# ×2
java ×2
.net ×1
asp.net-mvc ×1
backup ×1
jvm ×1
linq-to-sql ×1
rdbms ×1
regex ×1
routing ×1
spring ×1
spring-boot ×1
tomcat6 ×1