Gleb Arkhipov created SOLR-15821:
------------------------------------
Summary: Add an ability to do "join" so values of "from" field are
managed as phrases for "to" field
Key: SOLR-15821
URL: https://issues.apache.org/jira/browse/SOLR-15821
Project: Solr
Issue Type: Improvement
Security Level: Public (Default Security Level. Issues are Public)
Components: query, query parsers
Affects Versions: 8.10
Reporter: Gleb Arkhipov
I have 2 cores: *core_a* and *core_b*
*document_a_1* and *document_a_2* are indexed in *core_a*
{code:java}
[
{
"id":1,
"name": "document_a_1",
"field_a": "Strange name for human being"
},
{
"id":2,
"name": "document_a_2",
"field_a": "Strange name for human"
}
] {code}
*document_b* is indexed in *core_b*
{code:java}
{
"id": 1,
"name": "document_b",
"field_b": "human being"
} {code}
I would like to find in *core_a* all documents that *field_a* contains
*field_b* values of documents that *name* equals *document_b*
So with SQL it would like this:
{code:java}
SELECT *
FROM core_a
JOIN core_b
ON name = "document_b" AND "field_a" like "%" + field_b + "%" {code}
I suggest that the following *join* query should help me:
{code:java}
POST http://localhost:8983/solr/core_a/select
{
"query": {
"join": {
"from": "field_b",
"to": "field_a",
"fromIndex": "core_b",
"query": "name:document_b"
},
},
"fields": "name"
}{code}
So I expect that only *document_a_1* will be returned
If *StandardTokenizerFactory* is used for both *field_a* and {*}field_b{*},
then response contains *document_a_1* and *document_a_2*
If *StandardTokenizerFactory* is used for *field_a* and
*KeywordTokenizerFactory* is used for {*}field_b{*}, then the response contains
no documents
How could I get the expected result by using join?
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]