小编dan*_*ana的帖子

使用Lucene.NET索引.PDF,.XLS,.DOC,.PPT

我听说过Lucene.Net,我听说过Apache Tika.问题是 - 如何使用C#和Java索引这些文档?我认为问题在于没有.Net等效的Tika从这些文档类型中提取相关文本.

更新 - 2011年2月5日

基于给定的响应,似乎目前不是Tika 的原生 .Net等价物.提到了两个有趣的项目,每个项目各有趣:

  1. Xapian项目(http://xapian.org/) - 用非托管代码编写的Lucene的替代方案.该项目声称支持允许C#绑定的"swig".在Xapian项目中,有一个名为Omega的开箱即用搜索引擎.Omega使用各种开源组件从各种文档类型中提取文本.
  2. IKVM.NET(http://www.ikvm.net/) - 允许从.Net运行Java.可以在此处找到使用IKVM运行Tika的示例.

鉴于上述两个项目,我看到了几个选项.为了提取文本,我可以a)使用Omega正在使用的相同组件或b)使用IKVM来运行Tika.对我来说,选项b)看起来更干净,因为只有2个依赖项.

有趣的是,现在有几个搜索引擎可能可以从.Net使用.有Xapian,Lucene.Net甚至Lucene(使用IKVM).

更新 - 2011年2月7日

另一个答案是建议我查看ifilters.事实证明,这就是MS用于Windows搜索,因此Office ifilter随时可用.此外,还有一些PDF ifilters.缺点是它们是在非托管代码中实现的,因此使用COM互操作是必要的.我在DotLucene.NET档案中找到了以下代码snippit(不再是活动项目):

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;

namespace IFilter
{
    [Flags]
    public enum IFILTER_INIT : uint
    {
        NONE = 0,
        CANON_PARAGRAPHS = 1,
        HARD_LINE_BREAKS = 2,
        CANON_HYPHENS = 4,
        CANON_SPACES = 8,
        APPLY_INDEX_ATTRIBUTES = 16,
        APPLY_CRAWL_ATTRIBUTES = 256,
        APPLY_OTHER_ATTRIBUTES = 32,
        INDEXING_ONLY …
Run Code Online (Sandbox Code Playgroud)

.net asp.net lucene solr lucene.net

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

JSON序列化列表<KeyValuePair <string,object >>

我在Web API项目中使用了一个Dictionary,它在JSON中进行序列化:

{"keyname":{objectvalue},"keyname2:"....
Run Code Online (Sandbox Code Playgroud)

由于我有重复的键,我不能再使用Dictionary类型了,而现在我正在使用它 List<KeyValuePair<string,object>>.

但这是序列化的方式:

[{"Key":"keyname","Value":"objectvalue"}...
Run Code Online (Sandbox Code Playgroud)

有没有办法让List<KeyValuePair>序列化与字典一样?

谢谢.

c# serialization json

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

DataContract,默认DataMember值

有没有办法在反序列化期间选择不在xml文件中的属性的默认值?
如果mAgexml文件中没有该属性,我想使用默认值18.是否可以?

[DataContract]
public class Person 
{
    public Person ()
    {
    }
    [DataMember(Name = "Name")]
    public string mName { get; set; }
    [DataMember(Name = "Age")]
    public int mAge { get; set; }
    [DataMember(Name = "Single")]
    public bool mIsSingle { get; set; }
};
Run Code Online (Sandbox Code Playgroud)

编辑以回答.

[DataContract]
public class Person 
{
    public Person ()
    {
    }
    [DataMember(Name = "Name")]
    public string mName { get; set; }
    [DataMember(Name = "Age")]
    public int? mAge { get; set; }
    [DataMember(Name = "Single")]
    public …
Run Code Online (Sandbox Code Playgroud)

c# wcf datacontract datamember

17
推荐指数
2
解决办法
2万
查看次数

双打的Java ArrayList

有没有办法ArrayListdouble类型定义?我试过了两个

ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
Run Code Online (Sandbox Code Playgroud)

ArrayList list = new ArrayList<double>(1.38, 2.56, 4.3);
Run Code Online (Sandbox Code Playgroud)

第一个代码显示构造函数ArrayList<Double>(double, double, double)未定义,第二个代码显示后面需要维度double.

java double arraylist

11
推荐指数
2
解决办法
11万
查看次数

git - 最初克隆后获取最新文件

我对 Git 还很陌生,如果我听起来像个菜鸟,我很抱歉。

我最初运行了以下命令:

git clone https://github.com/userx/projecty.git
Run Code Online (Sandbox Code Playgroud)

我一直在我的工作站上进行更改,但都没有上传。github 上有一个已更新的文件,我想将其同步到我的工作站:

https://github.com/userx/projecty/blob/master/whatever/whatever.py
Run Code Online (Sandbox Code Playgroud)

我在本地对其进行了一些修改,但它们可以/应该被覆盖。我只希望在我的工作站上刷新一个文件,而不触及我所做的任何其他操作。任何关于如何做到这一点的想法将不胜感激。

谢谢!

git

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

注销后表单身份验证会话有效

是否有一种使来自服务器的表单身份验证会话无效的好方法?

我知道 cookie 具有嵌入式过期时间,但我想对服务器进行额外检查以验证用户是否没有手动注销。当用户手动退出时,我调用FormsAuthentication.SignOut()使 cookie 过期的方法。但是,如果我使用开发人员工具将 cookie 设置回其原始值,我仍然处于登录状态。

我能想到的一种选择是将“登录 ID”嵌入到UserData票证部分中。我的意思是每次登录都记录在数据库中,并且有一个与之关联的 ID。当用户手动注销时,我可以更新数据库记录以显示他们已经这样做了。但是,这需要我在每次对用户进行身份验证时查询数据库(不理想)。我可以维护一个缓存,但这似乎需要做很多工作,我希望有一种更简单的方法:)

谢谢!

asp.net authentication forms-authentication

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

使用LINQ将列表转换为列表列表

我有一个值列表:

IList<V> values = { V1, V2, V3, V4, V5, V6, V7 };
Run Code Online (Sandbox Code Playgroud)

我想将列表转换为列表列表,其中每个子列表都是指定的大小.每个子列表的大小可能会有所不同.例如:

IList<IList<V>> values_size2 = { { V1, V2 }, { V3, V4 }, { V5, V6 }, { V7 } };
IList<IList<V>> values_size3 = { { V1, V2, V3 }, { V4, V5, V6 }, { V7 } };
IList<IList<V>> values_size4 = { { V1, V2, V3, V4 }, { V5, V6, V7 } };
Run Code Online (Sandbox Code Playgroud)

我可以使用嵌套循环很容易地做到这一点,但是想知道是否有一种聪明的方法来使用LINQ做到这一点?

我最初的想法是以某种方式使用Aggregate方法,但没有任何想法立即浮现在脑海中.

谢谢.

c# linq

4
推荐指数
2
解决办法
1263
查看次数

临时密码安全 - 存储为纯文本

将临时/机器生成的密码作为明文存储在数据库中会有多少安全问题?

我知道密码应该使用带盐的单向散列函数加密.对于用户提供的密码尤其如此,因为用户通常一遍又一遍地重复使用它们.如果数据库被盗,小偷可能能够访问第三方网站上的用户用户帐户,例如:公用事业账单,社交网络,甚至网上银行的潜力.

将临时/机器生成的"欢迎"或"重置"密码存储为数据库中的明文是多少问题?密码将通过电子邮件发送给用户,登录后必须更改.然后,他们提供的密码将被散列.

我问的原因是存在一些很好的属性来存储临时密码作为明文.例如,如果用户未收到"欢迎"或"重置"电子邮件,管理员可以快速查找其临时密码.

因为临时密码是机器生成的,如果数据库被盗,窃贼将无法访问用户登录的任何第三方网站.然而,小偷可以登录到生成临时密码的应用程序.

为这些密码分配一个小的"到期"将限制曝光,但总的来说,我只是想看看这种方法有多危险.

security passwords hash cryptography

4
推荐指数
2
解决办法
928
查看次数

现有的 varbinary(max) 是否使用 FILESTREAM?

如何检查varbinary(max)列是否正在使用 FILESTREAM ?为了便于论证,假设我继承了一个数据库,并且我想检查哪些varbinary(max)列正在使用 FILESTREAM,哪些列没有。我尝试过运行,sp_columns但似乎没有显示任何相关内容。如果我在 SQL Server Management Studio 中的列上“右键单击 -> 属性”,它也不会显示任何内容。有谁知道如何检查这个吗?

sql-server sql-server-2008

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

仅在X字符长度之后的onkeyup或onkeypress

无论如何只有当我们在文本字段中填充多个字符字符时才调用js函数?

从现在开始我使用onblur ="myFunction();" 但是我想在填充一些字符后调用该函数.

谢谢!

javascript jquery

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

SQL - 选择相同的列两次但条件不同

我无法解决问题.任务是:

显示员工的姓名和人数以及他们的老板的姓名和姓名.

如下所示:

产量

只有一张桌子:

表

到目前为止我试过这个:

SELECT  
    ID, 
    Name, 
    Boss, 
    (SELECT Name FROM Employees WHERE ID IN (SELECT Boss FROM Employees))
FROM Employees
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

"子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做."

我很感谢你的帮助.

sql sql-server select

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

如果不为零,则在ndarray中为每个元素添加1

Python noobie在这里:)试图弄清楚如何简洁地做事.

>>> f = np.zeros((2,2), dtype=int)
>>> f[0][1] = 100
>>> f[1][0] = 200
>>> print f

[[  0 100]
 [200   0]]

>>> f1 = # do something special
>>> print f1

[[  0 101]
 [201   0]]
Run Code Online (Sandbox Code Playgroud)

谢谢!

python numpy

0
推荐指数
1
解决办法
1376
查看次数