Wenn ich Dokumente zum Index hinzufüge, gibt die Seite 400 ungültige Anforderungen zurück. Und das Solr wurde gestartet und kann Daten aus der Datenbank abrufen. Also muss ich die Daten in den Index setzen. Es ist jedoch immer gescheitert.Der Remote-Server hat einen Fehler zurückgegeben: (400) Ungültige Anforderung. Beim Hinzufügen von Dokumenten zum Index
1) Hier ist Code-Schnipsel von 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) hier ist Hauptteil 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) Fehler ist hier:
/// <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();
}
neue SolrBaseRepository.Instance() .Start(); var solr = ServiceLocator.Current.GetInstance >(); var specificPlayer = neues PlayerRepository(). GetPlayer (player.FirstName, player.LastName, player.Position); Solr.Add (spezifischerPlayer); solr.Commit(); –
Benny
posten Sie bitte den Code in der Frage richtig formatiert. Veröffentlichen Sie auch die Definition von SolrBaseRepository. –
auch die Definition von Player und Ihre schema.xml. –