小编jma*_*nes的帖子

Solr - 以任何顺序包含所有术语的结果

在SOLR安装中,当我搜索具有多字搜索词的字段时,我希望SOLR返回在搜索中包含所有术语的文档,但它们不需要按照确切的顺序.

例如,如果我搜索Brown Chicken Brown Cow的标题,我想查找包含所有术语Brown,Chicken和Cow的所有文档,而不管标题字段中的顺序如何.因此,例如,标题"鸡和牛有棕色大便"应该与查询匹配.AFAIK,这也是Google执行搜索的方式.

我已经尝试了以下查询格式:

1. Title:Brown AND Title:Chicken
2. Title:Brown AND Chicken
3. Title:Brown+Chicken
Run Code Online (Sandbox Code Playgroud)

我对结果非常困惑.在某些情况下,前两个查询返回相同的结果集.在其他情况下,第一个版本将返回许多结果,第二个版本将不返回任何结果.第三个版本似乎满足了我的需求,但我对查询的不同含义感到困惑.

我的所有测试都是针对text_en类型的字段运行的.

<field name="Title" multiValued="false" type="text_en" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)

那么,对于这种类型的搜索,最好的SOLR查询/设置是什么?此外,是否有一种简单的方法可以让Solr.NET获取用户输入的搜索词并将其转换为这种格式?

此外,SOLR默认情况下是否会为搜索词组的顺序提供更高的相关性分数?如果没有,那么实现这一目标的正确杠杆是什么?

编辑: 我的一些困惑是由于搜索非默认字段和默认字段引起的.知道这一点,唯一一致的格式是第一种格式.

lucene solr solrnet

8
推荐指数
1
解决办法
6354
查看次数

在C#中异步处理项目队列

我正在尝试创建一个处理工作队列的系统.该系统具有以下规格:

  1. 该系统有两个组件,一个工作分配器和一个工人.
  2. 同时运行的工人数量有一个设定的上限.该上限大于1.
  3. 为避免同一任务被处理两次出现问题,只有一个工作分配器.

你会用什么设计来创建这样一个系统?这就是我的想法:

  1. 创建一个队列集合,每个工作队列一个队列
  2. 为工作分配者创建一个计时器.它的工作是填充队列.
  3. 为每个worker创建一个Timer,将队列对象作为对象状态传入,以表示其工作负载
  4. 在锁定队列时删除并添加到队列中.
  5. 使用在锁定时递增和递减的计数器,以确保同时运行的指定工作任务数不超过指定数量.

我觉得必须有更好的方法来做到这一点.你会推荐什么?我应该从工作人员的计时器切换到线程吗?在队列为空时,线程是否应该旋转/等待?如果线程关闭并让工作分配器有条件地创建一个新的?

c# queue multithreading

4
推荐指数
1
解决办法
9459
查看次数

将MVC Partial View嵌入到document.write JS调用中

我正在创建一个嵌入到第三方网站的Javascript文件.Javascript文件将一些内容呈现到第三方网站上.这个想法和Google Adsense一样 - 网站所有者在他们的网站上放置了一个JS文件,一些广告出现在该位置.

我对替代方法持开放态度,但我试图通过嵌入式JS文件来实现这一点:

document.write('广告内容')

但是,我的广告内容嵌入在ASP.NET MVC3局部视图中.如何将从Html.Partial方法返回的内容转义为有效的JS字符串?

我正在寻找类似的东西:

文件撰写(@ Html.JavascriptEscapedPartial( "/共享/ _AdContent"))

javascript asp.net-mvc

3
推荐指数
1
解决办法
1042
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

javascript ×1

lucene ×1

multithreading ×1

queue ×1

solr ×1

solrnet ×1