问题列表 - 第29358页

Solr:fieldNorm每个文档不同,没有文档提升

我希望我的搜索结果按照他们正在进行的分数排序,但分数计算不正确.这就是说,不一定是不正确的,但与预期不同,我不知道为什么.我的目标是删除任何改变分数的内容.

如果我执行匹配两个对象的搜索(其中ObjectA的分数高于ObjectB),则首先返回ObjectB.

让我们说,对于这个例子,我的查询是一个单词:"apples".

ObjectA的标题:"苹果是苹果"(2/3条款)
ObjectA的描述:"苹果 - 苹果中有苹果,现在苹果遍布苹果的所有苹果!" (6/18条款)
ObjectB的标题:"苹果很棒"(1/3条款)
ObjectB的描述:"苹果室里有苹果,现在苹果在苹果上都变坏了!" (4/18条款)

标题字段没有提升(或者更确切地说,提升为1),描述字段的提升为0.8.我没有通过solrconfig.xml或通过我正在通过的查询指定文档提升.如果有另一种指定文档提升的方法,那么我有可能错过一个.

在分析explain打印输出之后,看起来ObjectA 正在计算比ObjectB更高的分数,就像我想要的那样,除了一个区别:ObjectB的标题fieldNorm总是高于ObjectA.


以下是explain打印输出.您知道:标题字段是mditem5_tns,描述字段是mditem7_tns:

ObjectB:
1.3327172 = (MATCH) sum of:
  1.0352166 = (MATCH) max plus 0.1 times others of:
    0.9766194 = (MATCH) weight(mditem5_tns:appl in 0), product of:
      0.53929156 = queryWeight(mditem5_tns:appl), product of:
        1.8109303 = idf(docFreq=3, maxDocs=9)
        0.2977981 = queryNorm
      1.8109303 = (MATCH) fieldWeight(mditem5_tns:appl in 0), product of:
        1.0 = tf(termFreq(mditem5_tns:appl)=1)
        1.8109303 = idf(docFreq=3, maxDocs=9)
        1.0 = …
Run Code Online (Sandbox Code Playgroud)

lucene solr relevance solr-boost

6
推荐指数
1
解决办法
4637
查看次数

如何从SqlDataReader获取列的表名

我从配置文件中获得了一个SQL查询,这个查询通常包含3-6个连接.

我需要在运行时根据SqlDataReader表示的结果集找到每个列的表名.

以下是一些不起作用的东西:

  • SqlDataReader.GetName返回列名但不返回表名.
  • SqlDataReader.GetSchemaTable返回包含列信息的数据表 - 但所有表名都为null.
  • 查询information_schema没有帮助,因为我需要有关当前查询结果的数据(并且列名不是唯一的 - 在不同的表中有相同名称的列).

我在控制台应用程序中使用.net 3.5SP1/C#/ SQL Server 2008.

编辑:我知道这对所有情况都不可能,因为"列"可以从多个表,一个函数甚至一个常量表达式组合 - 我正在寻找一些在简单情况下有用的东西.

编辑2:找出它无法工作的原因 - 您可以使用SqlDataReader.GetSchemaTable获取表信息,但是您必须将CommandBehavior设置为KeyInfo,您可以在ExecuteReader调用中执行此操作:

reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server sqldatareader

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

为什么C#要求您在每次触发事件时都写一个空检查?

这对我来说似乎很奇怪 - VB.NET通过其RaiseEvent关键字隐式处理空检查.它似乎大大增加了围绕事件的样板数量,我看不出它提供了什么好处.

我确信语言设计师有充分的理由这样做..但我很好奇,如果有人知道为什么.

c# null events

21
推荐指数
4
解决办法
1558
查看次数

在Ninject中注入接口数组

请考虑以下代码.

public interface IFoo { }


public class Bar
{
    public Bar(IFoo[] foos) { }
}


public class MyModule : NinjectModule
{
    public override void Load()
    {
        Bind<IFoo[]>().ToConstant(new IFoo[0]);
        // ToConstant() is just an example
    }
}


public class Program
{
    private static void Main(string[] args)
    {
        var kernel = new StandardKernel(new MyModule());
        var bar = kernel.Get<Bar>();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行该程序时,我得到以下异常.

激活IFoo时出错
没有匹配的绑定可用,并且该类型不可自我绑定.
激活路径:
2)将依赖关系IFoo注入到Bar
1 类型的构造函数的参数foo中.请求Bar

如何在Ninject中注入/绑定到数组?

谢谢你的时间.

编辑:
我的应用程序导入由第三方组件创建的数据.导入过程应用不同类型的过滤器(例如,不同过滤器接口的实现).过滤规则经常发生变化,但过于复杂,无法使用纯配置(和主过滤器).

我想尽可能简单地添加/编辑过滤器.我所拥有的是一个所有过滤器实现所在的程序集.我尝试将每个过滤器接口绑定到以下方法(它提供该过滤器类型的每个实现的实例).基本上我想避免在添加/删除过滤器类时更改我的Ninject模块.

    private IEnumerable<TInterface> GetInterfaceImplementations<TInterface>(IContext context)
    {
        return GetType().Assembly.GetTypes()
            .Where(t => …
Run Code Online (Sandbox Code Playgroud)

.net c# arrays dependency-injection ninject

14
推荐指数
2
解决办法
6012
查看次数

Random()在MySql中?

是否可以从表X中检索flags == 0的随机行?使用MySql和C#

c# mysql random

2
推荐指数
1
解决办法
747
查看次数

Mysql - 在表的一部分上使用散列函数检测数据中的更改

我需要在表中的某些数据上生成一个哈希值

CREATE TABLE Table1
(
       F1             INT          UNSIGNED NOT NULL AUTO_INCREMENT,
       F2              INT          default     NULL,
       F3               Varchar(50)  default     NULL,
      ..
       FN              INT          default     NULL,
       PRIMARY KEY (F1)
);
Run Code Online (Sandbox Code Playgroud)

即F1,F3,FN,其中F2 = 10

SELECT md5(CONCAT_WS('#',F1,F3,FN)) FROM Tabe1 WHERE F2=10
Run Code Online (Sandbox Code Playgroud)

为表中的每一行提供一个哈希值.

质询

1)如何在整个表上获得单个哈希?

2)使用MD5,SHA1,SHA或其他任何方法的fasts哈希算法是什么?

编辑:

MySQL 4.1中被使用了-它确实具备触发支持

mysql hash md5 sha1

9
推荐指数
2
解决办法
7563
查看次数

如何设置Emacs gdb以便它显示向上箭头的最近命令?

如何设置Emacs gdb,以便在我按向上箭头时显示最新的命令?

在Emacs gdb中,它只会在缓冲区中排成一行.

我知道你总是可以在缓冲区中向后搜索并在那里选择一个最近的命令,但直接用向上箭头获取命令会更方便.

emacs buffer gdb keyboard-shortcuts

6
推荐指数
1
解决办法
1628
查看次数

如何在C++中将char*转换为unsigned short

我有一个char* name字符串表示我想要的短,如"15",需要输出这个unsigned short unitId二进制文件.此演员表也必须是跨平台兼容的.

这是正确的演员: unitId = unsigned short(temp);

请注意,我在初学者水平上理解二进制.

c c++ pointers casting char

8
推荐指数
3
解决办法
4万
查看次数

Android - 绘图缓存 - 何时有用?

我读约setDrawingCacheEnabledgetDrawingCache,我想知道,当它的好处是使用它或当其并不好.

基本上在我的情况下,我有HorizontalScrollView很多内容,所以它的左/右滚动,大多数事情是不可见的.

如果我setDrawingCacheEnabled(true)在视图上使用它有帮助吗?或者这只是当我使用自定义视图并且我打电话的时候getDrawingCache()

是否还有其他'缓存'方式可供使用HorizontalScrollView

android caching

16
推荐指数
1
解决办法
1万
查看次数

如何构建Facebook新的Graph API返回的对象的永久链接?

Facebook Graph API允许从JSON中获取Facebook对象,如帖子,视频等.以下是帖子的示例:(取自文档):

{
         "id": "719323658_129694190395214",
         "from": {
            "name": "Rabia Yalcinkaya",
            "id": "719323658"
         },
         "message": "COK MUHTESEM!!!",
         "picture": "http://external.ak.fbcdn.net/safe_image.php?d=41762b7121ee68754ebea48dee4568aa&w=130&h=130&url=http%3A%2F%2Fats.vimeo.com%2F192%2F882%2F19288238_200.jpg",
         "link": "http://vimeo.com/5646785",
         "source": "http://vimeo.com/moogaloop.swf?clip_id=5646785",
         "name": "Watermelon carving",
         "caption": "vimeo.com",
         "description": "Me carving a watermelon.",
         "icon": "http://static.ak.fbcdn.net/rsrc.php/z9XZ8/hash/976ulj6z.gif",
         "type": "video",
         "created_time": "2010-06-23T10:58:17+0000",
         "updated_time": "2010-06-23T10:58:17+0000",
         "likes": 1
      },
Run Code Online (Sandbox Code Playgroud)

如何构建一个网址,允许您链接回Facebook上布雷特墙上的原始视频(或其他类型)?形式的东西

http://www.facebook.com/<USER_ID>/video/<VIDEO_ID>
Run Code Online (Sandbox Code Playgroud)

谢谢,波阿斯

facebook permalinks facebook-graph-api

14
推荐指数
1
解决办法
7740
查看次数