Domanda

Così ho implementato e utilizzato con successo Solr 4. Ho avuto modo di dire che Solr 4 è impressionante! Comunque ho risolto con successo dalla distanza e usato un geofilter per limitare i risultati di una certa area. Quello che vorrei fare ora è aumentare il punteggio di pertinenza per l'inverso della distanza. In questa pagina ne parla ma non dice come farlo (http://wiki.apache.org/solr/SpatialSearch)

Ho provato quanto segue ma mi dà un errore:

http://localhost:8983/solr/select/?q={!boost b=recip(geodist(), 1, 1000, 1000)}...

L'errore che ottengo è:

org.apache.lucene.queryParser.ParseException: Expected identifier at pos 27 str='{!boost b=recip(geodist(), 1, 10 in ...

Qualsiasi aiuto sarebbe apprezzato. Grazie!

È stato utile?

Soluzione

È ancora bisogno di specificare la parte principale della query dopo la funzione boost:

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&...

Se siete interessati solo a incrementare per l'inverso della distanza è possibile utilizzare una query jolly:

q={!boost b=recip(geodist(),1,1000,1000)}*&...

... o utilizzare il parser di query funzione:

q={!func}recip(geodist(),1,1000,1000)&...

È inoltre necessario specificare i valori di lat / long e campo spaziale per query sia come argomenti della funzione geodist:

q={!boost b=recip(geodist(50.1, -0.86, myGeoField),1,1000,1000)}foo:bar&...

... o presi come parametri di stringa di query:

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&sfield=myGeoField&pt=50.1,-0.86

Altri suggerimenti

solo aggiungere che ottengo risultati migliori con ...

{!boost b=recip(geodist(),1,100,10)}

Non so che cosa provoca questo, ma vorrei che Solr ha dato un po 'più di informazioni sui parametri per il recip e spinta. documentazione attuale è carente.

Come nota a margine, qui è una spinta distanza utilizzata al mio posto di lavoro. E 'diverso da quello sul sito della documentazione Solr. Questa funzione boost tratterà distanza allo stesso modo per un certo numero di kilomteres prima dell'inizio del potenziamento. Questo è utile in alcune situazioni, in cui non si desidera che le modifiche di pertinenza per le piccole differenze nelle distanze.

È possibile modificare l'25 costante per essere un qualsiasi numero di chilometri che si desidera che la spinta per essere lo stesso.

È possibile definire la spinta a distanza come ad esempio:

div(1.0, min(1000, max(25, geodist())))

distanza plot boost

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top