我正在使用Lucene构建"图书搜索"API.我需要索引Lucene索引中的Book Name,Author和Book category字段.
一本书可以归入多个不同的书籍类别......例如:
BookName1 - 小说,幽默,哲学.BookName1 - 小说,科学.BookName1 - 哼哼,生意.BookName4-幽默等等.....
用户应该能够搜索特定类别下的所有书籍"homour".
鉴于这种情况,我如何索引上面的字段并在lucene中构建查询?
优化Lucene性能的各种方法有哪些?
我应该使用缓存API来存储我的lucene搜索查询,以便节省再次构建查询的开销吗?
我有以下C#类:
public class Books
{
public List<Book> BookList;
}
public class Book
{
public string Title;
public string Description;
public string Author;
public string Publisher;
}
Run Code Online (Sandbox Code Playgroud)
如何将此类序列化为以下XML?
<Books>
<Book Title="t1" Description="d1"/>
<Book Description="d2" Author="a2"/>
<Book Title="t3" Author="a3" Publisher="p3"/>
</Books>
Run Code Online (Sandbox Code Playgroud)
我希望XML只包含那些值为null/empty的属性.例如:在第一个Book元素中,author是空白的,因此它不应出现在序列化XML中.
我正在开发一个使用Asp.net 3.5和Lucene.Net的.Net应用程序.我在一个asp.net数据网格中显示Lucene.Net给出的搜索结果.我需要为这个aspx页面实现Paging(每页10条记录).
如何使用Lucene.Net完成此操作?
我在我的门户网站中使用Lucene API,它将拥有1000个并发用户.我们的Web服务器将调用Lucene API,它将位于app服务器上.我们计划使用2个app服务器进行负载平衡.鉴于此,我们应该在第二个应用服务器上复制lucene索引的策略是什么?请提示?
我正在使用RangeQuery
所有文件,其数量介于0到2之间.当我执行查询时,Lucene给了我大于2的文件.我在这里错过了什么?
这是我的代码:
Term lowerTerm = new Term("amount", minAmount);
Term upperTerm = new Term("amount", maxAmount);
RangeQuery amountQuery = new RangeQuery(lowerTerm, upperTerm, true);
finalQuery.Add(amountQuery, BooleanClause.Occur.MUST);
Run Code Online (Sandbox Code Playgroud)
这是我的索引中的内容:
doc.Add(new Field("amount", amount.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED, Field.TermVector.YES));
Run Code Online (Sandbox Code Playgroud) 我有一个xml字符串存储在db表中,带有换行符.在我的C#3.5程序中,我使用Linq加载和操作它到xml,然后在UI表单的文本框控件中将其显示为字符串.
我需要缩进这个xml,并在UI中显示它时保留换行符/回车符.
能缩进它但是如何在xml中保留LF/CR字符?
这是示例C#代码:
XElement rootNode = CreateRootNode();
XElement testXmlNode = XElement.Parse(xmlFromDbWithLFChars);
rootNode.Add(testXmlNode );
var builder = new StringBuilder();
var settings = new XmlWriterSettings()
{
Indent = true
};
using (var writer = XmlWriter.Create(builder, settings))
{
rootNode.WriteTo(writer);
}
xmlString = builder.ToString();
xmlString = xmlString.Replace("
", Environment.NewLine); //Doesnt work
xmlString = xmlString.Replace("
", Environment.NewLine); //Doesnt work
//Heres how the xml should look like in the UI control:
<TestNode
name="xyz"
Id="12">
<Children>
<Child name="abc" location="p" />
</Children>
</TestNode>
Run Code Online (Sandbox Code Playgroud) 我正在使用一个使用Lucene.net的asp.net应用程序我需要突出显示从Lucene返回的搜索结果.我相信有一个Highlighter类用于此目的.我使用的是Lucene.Net版本2.0.0.4,但我无法在其中找到任何Highlighter类.请帮助.
谢谢!
我在C#/ Winforms应用程序中使用RichTextBox.
我在这个控件中显示了一些嵌入了一些UNC文件路径的文本:例如:filePath ="\\ serverName\DirName\File"
Richtextbox将此文件路径显示为UI中的可单击超链接.filePath =" \\ serverName\DirName\File.doc "
我想把它显示为纯文本.我怎么做到这一点?
谢谢.
我有一个字典对象:
Dictionary<string, string[]> dictCompanies = new Dictionary<string, string[]>();
Run Code Online (Sandbox Code Playgroud)
如何在键上对此对象进行排序?
我尝试使用下面的OrderBy,但它似乎没有用
dictCompanies .OrderByDescending(c=> c.Key);
Run Code Online (Sandbox Code Playgroud)
我将这个字典对象绑定到aspx页面中的checkboxlist.
我尝试使用委托对这个ListItemCollection进行排序......但仍然没有运气......
我错过了什么吗?
谢谢
我正在使用LINQ to XML.我想<>
在where
下面的子句中使用等效的sql的运算符....
var myBooks = from book in xDoc.Descendants("BOOKOB")
where book.Element("AUTHOR").Value
Run Code Online (Sandbox Code Playgroud)
请帮忙!
c# ×7
lucene ×5
lucene.net ×5
xml ×3
.net ×1
hyperlink ×1
linefeed ×1
linq ×1
linq-to-xml ×1
richtextbox ×1
search ×1
winforms ×1