我正在使用SolrNet在一組表上搜索數據。如何在SolrNet的多個表上執行索引/搜索
我有兩個表分類和項目。
這兩個表具有相同的字段,因此我有一個基礎映射類形式,我導出。索引分類數據
[Serializable]
[XmlRoot(ElementName = "SolrSearchEntity", Namespace = "")]
[DataContract(Name = "SolrSearchEntity", Namespace = "")]
public class SolrSearchEntity
{
[XmlElement(ElementName = "Id")]
[DataMember(Name = "Id", IsRequired = true)]
[SolrUniqueKey("id")]
public string Id { get; set; }
[XmlElement(ElementName = "Name")]
[DataMember(Name = "Name", IsRequired = true)]
[SolrField("name")]
public string Name { get; set; }
}
public class Category : SolrSearchEntity
{
}
public class Item : SolrSearchEntity
{
}
代碼塊
using (SolrBaseRepository.Instance<Category> repository = new SolrBaseRepository.Instance<Category>())
{
var output = ItemStoreDataManager.GetAllCategoryNames(dataAdapter);
repository.Start();
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Category>>();
solr.AddRange(output);
solr.Commit();
}
索引項數據代碼塊
using (SolrBaseRepository.Instance<Item> repository = new SolrBaseRepository.Instance<Item>())
{
var output = ItemStoreDataManager.GetAllItemNames(dataAdapter);
repository.Start();
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Item>>();
solr.AddRange(output);
solr.Commit();
}
我Schema.xml的具有
<fields>
<!-- declare fields of entity class -->
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_general" indexed="true" stored="true" omitNorms="true"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
</fields>
查詢的類別數據
var entities = ItemStoreManager<Category>.Search(keyword); which will internally execute this.
new SolrBaseRepository.Instance<T>().Start();
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<T>>();
var results = solr.Query(keyword);
奇怪的是,我從項目表中獲取的記錄。
我該如何告訴SolrNet(搜索引擎)來查看我指定的類型。
或者我在第一個地方正確編制索引?
請幫忙。
感謝,
謝謝廚師。我採取了你所建議的方法。但是,表格的id值與正在運行的數字相似(重疊)。因此,我收到不正確的數據,查詢類別退貨項目數據。如何處理這個? – Prasad
謝謝廚師。我採取了你所建議的方法。但是,表格的id值與正在運行的數字相似(重疊)。因此,我收到不正確的數據,查詢類別退貨項目數據。如何處理這個? – Prasad