刚刚安装了Solr,编辑了schema.xml
,我现在正在尝试索引它并使用一些测试数据进行搜索.
在我发送给Solr的XML文件中,我的一个字段看起来像这样:
<field name="PageContent"><![CDATA[<p>some text in a paragrah tag</p>]]></field>
Run Code Online (Sandbox Code Playgroud)
那里有HTML,所以我把它包装在CDATA中.
在我的Solr中schema.xml
,该字段的定义如下所示:
<field name="PageContent" type="text" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)
当我运行POSTing工具时,一切正常,但是当我搜索我知道的PageContent
字段内的内容时,我没有得到任何结果.
但是,当我将<defaultSearchField>
节点设置为时PageContent
,它可以工作.但是,如果我将它设置为任何其他字段,它不会搜索PageContent
.
难道我做错了什么?有什么问题?
澄清错误:
我上传了一个包含以下数据的"doc":
<field name="PageID">928</field>
<field name="PageName">some name</field>
<field name="PageContent"><![CDATA[<p>html content</p>]]></field>
Run Code Online (Sandbox Code Playgroud)
在我的架构中,我已经定义了这样的字段:
<field name="PageID" type="integer" indexed="true" stored="true" required="true"/>
<field name="PageName" type="text" indexed="true" stored="true"/>
<field name="PageContent" type="text" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)
和:
<uniqueKey>PageID</uniqueKey>
<defaultSearchField>PageName</defaultSearchField>
Run Code Online (Sandbox Code Playgroud)
现在,当我使用Solr管理工具并搜索" some name
"时,我得到一个结果.但是,如果我搜索" html content
"," html
"," content
"或" 928
",我就没有结果
为什么?
我们有一个"log"类,它使用Relection.MethodBase将当前类信息发送到日志.
reflection.MethodBase的东西发生在类本身.
但是,我想把这些东西移到一个外部的"log"单例类型类中.
在这种情况下,外部日志类需要获取CALLING信息,而不是当前方法信息.我正在使用stacktrace来执行此操作,这不在Reflection命名空间中.
我可以保证在生产环境中存在"那个"特定信息(调用方法)吗?
var stackTrace = new StackTrace();
return LogManager.GetLogger(stackTrace.GetFrame(1).GetMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)
干杯!
假设您有一个带抽象方法的抽象类,并在这些方法上放置XML文档标记.
当你继承那个类并实现那些方法时,intellisense不会"继承"XML文档......?
有谁知道它是否可以使IDE继承文档?
如果没有,你不觉得这是一种奇怪的行为吗?
我认为我可能希望通用注释在类的实现中冒出来是完全可以接受的...当然,如果我评论一个实现,那么应该出现.
嘿,好,这是场景:
VS 2008 .NET 3.5 SP1,LINQ to SQL
我有一个产品实体,该实体具有一个ImageID字段,因此它与该图像实体有关系。所有这些都在模式和DBML中定义。
现在,假设我创建一个没有ImageID的新Product实体,并将其保存到DB。此时,实体的_Image字段已将HasLoadedOrAssignedValue设置为false。
现在,当我从数据库中检索该实体时,没有ImageID,即ImageID设置为null,并且附加给它的Image Entity也设置为null,HasLoadedOrAssignedValue设置为true。
现在,当我尝试将ImageID属性设置为有效的int时,我得到了ForeignKeyReferenceAlreadyHasValueException异常。
现在,我知道人们会说:“哦,您必须设置关系属性本身,因此,Product.Image = someImage,而不是Product.ImageID = 2”,但是我总是设置ID字段,并且它始终有效。 ..好吧,几乎总是
因此,我的问题是双重的:
干杯!
好吧,我是SOLR和Lucene的新手,但是已经让Solr在Tomcat 6.x下运行开箱即用,并且刚刚完成了一些基本的Wiki条目.
我有几个问题,也需要一些建议.
Solr可以索引文件(XML,CSV)中的数据,也可以索引DB.您是否也可以将其指向URI /域,并让它以谷歌的方式为网站编制索引?
如果我的网站有"页面"数据,那么"页面名称","页面内容"等,以及"产品数据",那么"产品名称","SKU"等,我是否需要两个不同的Schema.xml文件?如果是这样,这是否意味着两个不同的Solr实例?
最后,如果你有一个包含大型关系数据库和规范化数据库的项目,你会说下面3个选项的最佳方法是什么?:
在后台运行中间件服务,该服务挖掘数据库并手动创建相关的XML文件,然后发送到SOLR
让SOLR直接索引DB.在这种情况下,最好只将SOLR指向视图,这将抽象所有表关系?
还有其他我不知道的选择吗?
上下文:我们运行的是Windows 2003环境,.NET 3.5,SQLServer 2005/2008
干杯!
嘿伙计们,我在SOLR中索引数据时设法从内容中剥离HTML.
但是,在简单存储数据时是否可以从数据中删除HTML?
这是我的领域:
<field name="Content" type="textNoHTML" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)
并且,字段类型"textNoHTML"实现了solr.HTMLStripCharFilterFactory:
<charFilter class="solr.HTMLStripCharFilterFactory" />
Run Code Online (Sandbox Code Playgroud)
正如我所说,这适用于索引,但是是否可以应用类似的过滤器进行存储?
干杯!
可能重复:
自动生成.NET单元测试
嘿伙计们,我对单元测试很新,所以请耐心等待.
我意识到最好的最佳实践不是自动生成单元测试,但是我想使用代码生成来设置测试的基本框架.
现在,我知道Visual Studio 2008已经内置了"创建测试",但是,它只是创建了一个它要测试的所有类的平面列表......而且它不适合NUnit吗?
理想情况下,我希望代码生成遵循其生成测试的程序集的文件夹AND名称空间结构.
你们能推荐一些能在Visual Studio 2008中为.NET程序集生成NUnit单元测试的好工具吗?
干杯!
在我们的Rspec + Capybara + selenium(FF)测试套件中,我们得到了很多不一致的"Capybara :: ElementNotFound"错误.
问题是他们有时只会发生.通常它们不会在本地发生,它们会发生在CircleCi上,我希望机器更加强大(并且速度更快)?
当规范单独运行时,通常不会发生相同的错误,例如通过运行具有特定行号的rspec:42.
但是请记住,没有一致性.规范不会一直失败.
目前,我们唯一能做的就是用'睡眠'来破坏规格.每当我们收到这样的错误时我们就会添加它们并修复它.有时候我们必须增加睡眠时间,这使得测试变得非常慢,你可以想象.
似乎没有踢我想象,因为测试通常在分配的等待时间(当前5秒)下失败
这是一个常见的失败:
visit "/#/things/#{@thing.id}"
find(".expand-thing").click
Run Code Online (Sandbox Code Playgroud)
这通常会导致:
Unable to find css ".expand-thing"
Run Code Online (Sandbox Code Playgroud)
现在,在这两行之间进行一次睡眠就可以解决问题.但是睡觉太暴力了.我可能会花一秒钟,但代码可能只需要半秒钟.
理想情况下,我希望Capybara等待时间,因为它只需要等待,而不再等待.
我知道如果页面上不存在选择器,水豚只能做等待.但是在上面的示例中,您会注意到我正在访问页面并进行选择,因此该元素尚未在页面上,因此Capybara应该等待.
这是怎么回事?
我们SomeMailer
在引擎内部设置了.生成邮件程序后,Rails会创建一个SomeMailerPreview
类,并带有注释:
# Preview this email at http://localhost:3000/rails/mailers/some_mailer/test
Run Code Online (Sandbox Code Playgroud)
但是,一旦我Dummy
在我的引擎中运行应用程序,该URL就无法解析.
引擎安装在根路径'/'上:
mount MyEngine::Engine => "/"
Run Code Online (Sandbox Code Playgroud)
我已尝试过将url与引擎名称的不同组合,但无法解决.
是否可以在引擎内使用预览功能?
我已经尝试使用谷歌搜索和stackoverflowing这一切,我得到的是链接回API参考或缩放dynos的例子,这不是我想要的.
heroku run:detached
很棒,因为它只是用你的应用程序旋转一个dyno,运行你想要的任何东西,然后旋转dyno.
如何使用Heroku Platform AP I 实现完全相同的功能?
我见过人们提到你必须Dyno
在API上使用端点,但是如何?有人可以提供一个关于如何从API运行以下内容的确切示例吗?
$ heroku run:detached --size 2x rake my_task.rb
Run Code Online (Sandbox Code Playgroud) .net ×3
indexing ×3
solr ×3
.net-3.5 ×1
actionmailer ×1
c# ×1
capybara ×1
ember.js ×1
filtering ×1
heroku ×1
intellisense ×1
linq-to-sql ×1
nunit ×1
reflection ×1
rspec ×1
search ×1
selenium ×1
unit-testing ×1