marklogic / marklogic/java-client-api
queryManager.uris does not honor additional-query in search options
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 61
- Fork
- 74
- Merge medio
- 2g 53m
- PR unite (30g)
- 8
Descrizione
Version of MarkLogic Java Client API
6.5.0
Version of MarkLogic Server
11.0.2
Java version
JDK 17
OS and version
ProductName: macOS
ProductVersion: 13.5
BuildVersion: 22G74
Input: Some code to illustrate the problem, preferably in a state that can be independently reproduced on our end
The current issue is a follow-up of this one: https://github.com/marklogic/java-client-api/issues/1640
In the last issue you correctly mentioned that the correct format for search positive/negative is: positive-query and negative-query
However, the way I created the last issue is not 1:1 with the issue that we actually had. Our issue is actually the following:
executing a search query and passing an options name parameter (where the options contains an and-not-query looking for a collection is simply ignored in QueryBatcher, but it works for a simple search).
Let me help you a bit with a piece of code:
QueryManager queryManager= markLogicDatabaseClient.newQueryManager();
final RawCombinedQueryDefinition structQueryDef = queryManager
.newRawCombinedQueryDefinition(new StringHandle(
"<search xmlns=\"http://marklogic.com/appservices/search\">\n" +
" <query>\n" +
" <and-query>\n" +
" <term-query>\n" +
" <text>world</text>\n" +
" </term-query>\n" +
" </and-query>\n" +
" </query>\n" +
"</search>"), "all");
final SearchHandle result = queryManager.search(structQueryDef, new SearchHandle());
result.getMatchResults();
The content of "all.xml" contains (between other stuff):
<cts:and-not-query>
<cts:annotation type="searchable-collections"/>
<cts:positive>
<cts:collection-query>
<cts:uri>collection1</cts:uri>
<cts:uri>collection2</cts:uri>
</cts:collection-query>
</cts:positive>
<cts:negative>
<cts:collection-query>
<cts:uri>ignoredCollection</cts:uri>
</cts:collection-query>
</cts:negative>
</cts:and-not-query>
Actual output: What did you observe? What errors did you see? Can you attach the logs? (Java logs, MarkLogic logs)
The output is correct for a simple search, the collections are filtered, but for QueryBatcher they are not.
Expected output: What specifically did you expect to happen?
The output is the same for both search and QueryBatcher (collections are taken into account)
Alternatives: What else have you tried, actual/expected?
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Parti dai punti di ingresso QueryManager.search e QueryBatcher, utilizzando la riproduzione Java fornita e il contenuto delle opzioni di all.xml. Confronta il modo in cui il nome dell’opzione e il relativo filtro di raccolta and-not-query vengono applicati nella ricerca semplice rispetto a QueryBatcher. Il lavoro è completato quando entrambi i percorsi restituiscono gli stessi risultati filtrati per raccolta, inclusa l’esclusione di ignoredCollection.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 52/100