Meine Elasticsearch gibt derzeit verschiedene Ergebnisse in verschiedenen Umgebungen, obwohl ich die gleiche Suche mache. Es funktioniert gut in der Entwicklung auf meinem lokalen Host, aber es funktioniert nicht auf meinem Testserver (gibt keine erwarteten Datensätze, ja ich habe die Datenbank gesetzt).Elasticsearch unterschiedliches Verhalten auf Testserver
Soweit ich verstehe, was dies tun sollte ist zu überprüfen, ob es einen Treffer auf einem der drei Übereinstimmungen findet, und ob es alle Treffer zurückgibt.
Ich verwende Windows 10, nur mit rails s
.
Der Server läuft Ubuntu 16, mit Nginx und Einhorn.
Hier ist meine Abbildung: (Anmerkung: Ich bin mir nicht ganz sicher, ob der Analysator etwas tut, aber es sollte keine Rolle spielen)
settings index: { number_of_shards: 1 } do
mappings dynamic: 'true' do
indexes :reportdate, type: 'date'
indexes :client do
indexes :id
indexes :name, analyzer: 'dutch'
end
indexes :animal do
indexes :id
indexes :species, analyzer: 'dutch'
indexes :other_species, analyzer: 'dutch'
indexes :chip_code
end
indexes :locations do
indexes :id
indexes :street, analyzer: 'dutch'
indexes :city, analyzer: 'dutch'
indexes :postalcode
end
end
end
Hier ist meine Suche:
__elasticsearch__.search({
sort: [
{ reportdate: { order: "desc" }},
"_score"
],
query: {
bool: {
should: [
{ multi_match: {
query: query,
type: "phrase_prefix",
fields: [ "other_species", "name"]
}},
{ prefix: {
chip_code: query
}},
{ match_phrase: {
"_all": {
query: query,
fuzziness: "AUTO"
}
}}
]
}
}
})
EDIT # 1 : Hinweis: Ich bin ziemlich neu in Sachen Ruby on Rails, habe vor ca. 2 Wochen damit begonnen, Wartungsarbeiten an einem alten Projekt durchzuführen und sie haben auch eine Suchfunktion angefordert.
Nimmt Ihr Testserver dieselbe DB oder eine andere Datenbank ab, die als Ihr localhost gesetzt ist? Außerdem ändern Analysatoren die Art und Weise, wie ElasticSearch Dokumente indiziert und tokenisiert. Stellen Sie daher sicher, dass Sie dasselbe Setup zwischen den beiden Servern ausführen, oder die Ergebnisse variieren stark. – bkunzi01
Sie sind verschiedene Datenbanken, sie sind jedoch identisch gesetzt. Wie auch immer, gerade herausgefunden, dass es wahrscheinlich Rails Caching-Dateien ist und aus irgendeinem Grund keine aktualisierten Dateien verwendet. Danke für den Kommentar oder so, ich werde diese Frage einfach löschen und eine weitere öffnen, um Verwirrung zu vermeiden. (plus es scheint nicht viel zu tun mit elasticsearch) –
Nevermind, hatte andere Antworten mit der gleichen Prämisse durchgesehen, und es schien, Dateien zu cachen, aber behoben, und dieses Problem besteht immer noch. –