Удаленный сервер вернул ошибку: (400) неверный запрос. при добавлении документов в индекс

Когда я добавляю документы в индекс, страница возвращает 400 неверных запросов. Solr запустился и может получать данные из базы данных. Поэтому мне нужно поместить данные в index. Однако это всегда терпело неудачу.


1) Вот фрагмент кода SolrBaseRepository

/// <summary>    
/// Base repository for Solr    
/// </summary>  
public class SolrBaseRepository  
{    
    /// <summary>    
    /// New instance of Solr    
    /// </summary>    
    /// <typeparam name="T">Specific type</typeparam>  
    public class Instance<T>    
    {    
        /// <summary>  
        /// Start Solr instance for a specific type  
        /// </summary>  
        public void Start()  
        {  
            var instances = Startup.Container.GetAllInstances(typeof (ISolrOperations<T>));  

            if (instances.Count() == 0)  
            {  
                Startup.Init<T>(Toolbox.SolrUrl);  
            }  
        }  

    }  
}  

2) вот основная часть schemal.xml

<fields>    
    <field name="id" type="int" indexed="true" stored="true" required="true" />   
    <field name="firstname" type="text" indexed="true" stored="false"required="false" />   
    <field name="lastname" type="text" indexed="true" stored="false" required="false" />  
    <field name="position" type="text" indexed="true" stored="false" required="false" />  
    <field name="text" type="text" indexed="true" stored="false" multiValued="true" />  
</fields>  
<copyField source="firstname" dest="text" />    
<copyField source="lastname" dest="text" />    
<copyField source="position" dest="text" />    
<uniqueKey>id</uniqueKey>    
<defaultSearchField>text</defaultSearchField>    
<solrQueryParser defaultOperator="AND" />     

3) solrurl: http: // localhost: 8080 / solr

<appSettings>  
<add key="SolrUrl" value="http://localhost:8080/solr"/>  
</appSettings>  

4) ошибка здесь:

/// <summary>  
/// Add all players to the index  
/// </summary>  
public void IndexPlayers()  
{  
    new SolrBaseRepository.Instance<Player>().Start();  

    var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Player>>();  
    var players = new PlayerRepository().GetPlayers();  

    **solr.Add(players);** // The remote server returned an error: (400) Bad Request.   
    solr.Commit();  
}  
6
задан George Stocker 2 August 2012 в 17:11
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: