我在机器 192.168.0.113(Centos 5.5)中设置了一个在 Tomcat 中运行的 solr 服务器。我在matchine 192.168.0.114(Windows server 2003)中部署了一个网站。我在 matchine 192.168.0.114 中使用 solrnet。完整的代码如下(感谢@Paige Cook 编辑):
using System;
using System.Collections.Generic;
using System.Text;
using SolrNet;
using NUnit.Framework;
using SolrNet.Attributes;
using SolrNet.Commands.Parameters;
using Microsoft.Practices.ServiceLocation;
namespace MySolrNet
{
public class Video
{
private string videoid;
[SolrField("videoid")]
public string Videoid
{
get { return videoid; }
set { videoid = value; }
}
private string videoname;
[SolrField("videoname")]
public string Videoname
{
get { return videoname; }
set { videoname = value; }
}
private string videoorigin;
[SolrField("videoorigin")]
public string Videoorigin
{
get { return videoorigin; }
set { videoorigin = value; }
}
public Video(string id, string name, string origin)
{
this.Videoid = id;
this.Videoname = name;
this.Videoorigin = origin;
}
public Video()
{
}
public void FixtureSetup()
{
Startup.Init<Video>("http://192.168.0.113:8070/solr");
}
public void Add()
{
Video p = new Video("1", "test video", "Solr Test");
ISolrOperations<Video> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Video>>();
solr.Add(p);
solr.Commit();
}
}
[TestFixture]
public class VideoTests
{
[TestFixtureSetUp]
public void FixtureSetup()
{
Startup.Init<Video>("http://192.168.0.113:8070/solr");
}
[Test]
public void Add()
{
Video p = new Video("1", "test video", "Solr Test");
ISolrOperations<Video> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Video>>();
solr.Add(p);
solr.Commit();
}
[Test]
public void Query()
{
ISolrOperations<Video> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Video>>();
SolrQueryResults<Video> results = solr.Query(new SolrQueryByField("videoid", "33013"));
Assert.AreEqual(1, results.Count);
Console.WriteLine(results[0].Videoname);
}
}
}
但是,添加和查询测试都失败了。它抱怨:TestFixture 失败:SetUp:System.IO.FileLoadException:无法加载文件或程序集“SolrNet,版本=0.4.0.2002,Culture=neutral,PublicKeyToken=bc21753e8aa334cb”或其依赖项之一。
但是我在我的项目中添加了对 Microsoft.Practices.ServiceLocation.dll 和 SolrNet.dll 的引用,还有其他我想念的 dll 文件吗?
顺便说一句,我可以使用以下网址在浏览器中访问我的 solr 服务器:http://192.168.0.113:8070/solr。
谁能告诉我:
- 我可以在不同的机器上运行 solrnet 和 solr 吗?
- 怎么做。
非常感谢!