我使用Lucene.Net 2.0来索引数据库表中的某些字段.其中一个字段是"名称"字段,允许使用特殊字符.当我执行搜索时,它找不到包含带有特殊字符的术语的文档.
我将我的字段编入索引:
Directory DALDirectory = FSDirectory.GetDirectory(@"C:\Indexes\Name", false);
Analyzer analyzer = new StandardAnalyzer();
IndexWriter indexWriter = new IndexWriter(DALDirectory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
doc.Add(new Field("Name", "Test (Test)", Field.Store.YES, Field.Index.TOKENIZED));
indexWriter.AddDocument(doc);
indexWriter.Optimize();
indexWriter.Close();
Run Code Online (Sandbox Code Playgroud)
我搜索以下内容:
value = value.Trim().ToLower();
value = QueryParser.Escape(value);
Query searchQuery = new TermQuery(new Term(field, value));
Searcher searcher = new IndexSearcher(DALDirectory);
TopDocCollector collector = new TopDocCollector(searcher.MaxDoc());
searcher.Search(searchQuery, collector);
ScoreDoc[] hits = collector.TopDocs().scoreDocs;
Run Code Online (Sandbox Code Playgroud)
如果我将字段搜索为"名称"并将值作为"测试",则会找到该文档.如果我执行与"名称"相同的搜索并将值作为"测试(测试)",则它找不到该文档.
更奇怪的是,如果我删除QueryParser.Escape行搜索GUID(当然,包含连字符),它会找到GUID值匹配的文档,但执行相同的搜索,其值为'Test(Test) '仍然没有结果.
我不确定我做错了什么.我使用QueryParser.Escape方法来转义特殊字符并存储字段并通过Lucene.Net的示例进行搜索.
有什么想法吗?
是否可以在Validation类中自动装配对象?对于应该是Autowired的对象,我一直都为null ...
我有两个列表:一个包含一组x点,另一个包含y个点.Python以某种方式设法混合x点,或者用户可以.我需要按从最低到最高的顺序对它们进行排序,然后移动y点以跟随它们的x对应项.它们分为两个单独的列表..我该怎么办?
我正在寻找一种方法来确定两个字符串之间的差异,并在两个字符串中突出显示它们.
我怀疑大多数'diff'库不会起作用,因为它们显示出不同的行(我相信).
算法或库都可以使用.
谢谢,马克
我该如何改造?
www.bestbuy.com/site/Electronics\Audio\abcat0200000.c=3fid=3dabcat0200000
Run Code Online (Sandbox Code Playgroud)
进入原来的格式?
www.bestbuy.com/site/Electronics/Audio/abcat0200000.c?id=abcat0200000
Run Code Online (Sandbox Code Playgroud)
有urldecode吗?
我正在处理一个包含大量旧代码的大型代码库:
try
{
...
}
catch
{
throw;
}
Run Code Online (Sandbox Code Playgroud)
Resharper有助于标记这些,并提供"删除冗余捕获"的选项,但我不喜欢必须逐个检查,我想立即将它们全部清除.有没有办法用Resharper做到这一点,可能通过将其与"代码清理"集成在一起?
一般来说,我想要unsigned vs signed的警告.
但是,在这种特殊情况下,我希望它被压制;
std::vector<Blah> blahs;
for(int i = 0; i < blahs.size(); ++i) { ...
Run Code Online (Sandbox Code Playgroud)
我想杀死这个比较.
谢谢!
(使用g ++)
我正在尝试使用regex.replace来删除不需要的字符,但我需要考虑空格:
string asdf = "doésn't work?";
string regie = @"([{}\(\)\^$&._%#!@=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)";
Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-"));
Run Code Online (Sandbox Code Playgroud)
返回doésntwork而不是doésnt-work
想法?
谢谢!
在C++中声明枚举的标准方法似乎是:
enum <identifier> { <list_of_elements> };
Run Code Online (Sandbox Code Playgroud)
但是,我已经看到了一些声明,例如:
typedef enum { <list_of_elements> } <identifier>;
Run Code Online (Sandbox Code Playgroud)
如果存在,它们之间有什么区别?哪一个是正确的?
我有一个书项目,我想早点开始.这将遵循类似敏捷的发布工作流程,即:早期和经常发布.它本来是由我自我发布的,我并不是真的想用纸张发表它,即使我们从来不知道.
如果我不是一个极客,我可能已经开始使用Word或任何其他WYSIWYG工具编写,只是导出为PDF.但是,我们知道它不是最好的解决方案,而emacs规则我的文本编辑生活,因此,输出格式应该尽可能简单并且基于文本.
我考虑过以下几种选择:
只需使用orgmode并导出为PDF(orgmode本机具有此功能)
使用降价模式并导出为PDF(markdown-> LaTeX-> PDF不难设置);
使用与@ Pragmatic Progammers所做的类似的东西:XML + XSLT + LaTeX.更复杂,但更多的控制风格.
编辑:有人告诉我他使用了Textile + Adobe In Design和XTags插件的组合.虽然不确定它们是如何粘在一起的,但还是要做一些研究.
还有其他想法/参考吗?
我想尽快开始写作.事实上,我已经在组织格式的文件中有一个草稿.但是,我确实想拥有并使用LaTex的全部功能,以我想要的方式格式化它,让它看起来很棒:)
提前致谢,
马塞洛.