JIRAs with user facing changes

2020-10-16 Thread Noble Paul
Hi,
I'm proposing a process for every ticket which has a user facing
change. The changes could be

* A new command/end point
* A new request parameter
* A configuration (solr.xml, clusterprops.json, or any other file in ZK)
* A new file (part of file) in ZK
* A new file in file system

I may have missed some.

Please ensure that the changes are described in the description of the
JIRA. This gives a heads up to other committers that a new user facing
change is being introduced.

Solr's UX is inconsistent & hard and the reason is that we all make
user-facing changes without enough review. Of course we add ref guide
documentation. But, it is not done until it is too late. The intent to
make a change should be made clear well in advance so that we get
early feedback. Other committers often see the changes pretty late and
at this point it is too late to change because of backward
incompatibility.


-- 
-
Noble Paul

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



Branch 8.7

2020-10-16 Thread Atri Sharma
I am running precommit on the branch 8_x right now -- once it
completes, I will cut the branch 8.7.

-- 
Regards,

Atri
Apache Concerted

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org



8.8 section in the changelog?

2020-10-16 Thread Adrien Grand
Hello,

I'm confused that master now has a non-empty 8.8 section in the Changelog
while branch_8_7 has not been cut yet, was it done by mistake?

-- 
Adrien


Re: bin/solr testing surprise with techproducts example

2020-10-16 Thread Christine Poerschke (BLOOMBERG/ LONDON)
Opened https://issues.apache.org/jira/browse/SOLR-14941 w.r.t. the help file 
update and with a question re: 'assemble' vs. 'dev' directory detail.

From: dev@lucene.apache.org At: 09/28/20 19:08:15To:  Christine Poerschke 
(BLOOMBERG/ LONDON ) ,  dev@lucene.apache.org
Subject: Re: bin/solr testing surprise with techproducts example


: Question: What is the replacement for "cd solr ; ant dist server" usage?

AFAICT the the most straightwoard "adaptation" of...

$ cd solr && ant server && bin/solr -e SOMETHING

...seems to be (using gdub) ...

$ cd solr && gw dev && ./packaging/build/dev/bin/solr -e SOMETHING

...which i think using straight gradlew would be...

$ ./gradlew -p solr dev && solr/packaging/build/dev/bin/solr -e SOMETHING


...and i'm all in favor of adding that to to one of the help files if i'm 
not hte only one that finds that patten incredibly common when trying to 
do little mini tests.


: Observation: "cd solr ; bin/solr start -e techproducts" on master branch 
: (but not branch_8x) gives me an error. Is this a known issue already or 
: if not could someone try to reproduce the issue before a JIRA ticket is 
: opened?
: 
: ERROR: Error CREATEing SolrCore 'techproducts': Unable to create core 
: [techproducts] Caused by: [schema.xml] analyzer/tokenizer: missing 
: mandatory attribute 'class'

FWIW, that has bitten me several times, and IIUC it's because i'm 
switching back and forth from 8x to master w/o doing full "git clean", and 
when the muscle memory types "bin/solr" instead of 
"packaging/build/dev/bin/solr" it's running old 8x compiled/build solr 
against the master example configs.

-Hoss
http://www.lucidworks.com/

-
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org




Re: PointInSetQuery dose not terminate early if DocIdSetBuilder's bitSet is null

2020-10-16 Thread hacker win7
Is there any reasons for this why PointInsetQuery return NO_MORE_DOCS instead 
of NULL while NULL can terminate early.


hacker win7
hackersw...@gmail.com



> On Sep 29, 2020, at 11:59, hacker win7  wrote:
> 
> Thanks Adrien Grand
> 
> We store long numbers in our points, in our search service, most search 
> requests look like this:
> 
> id-match AND range match AND string match AND …. (Clause count is high)
> 
> Id is long number and we find most searches of id-match query have no points 
> at all but the subsequent SubQueries still evaluate match, there is some 
> extra cost for these searches which ought to be terminated early in id-match 
> SubQuery.
> 
> This lead to our most search requests usually spend extra cost to response
> 
> And we find that in string match style of TernWeight scorer() before return 
> scorer, in the getTermsEnum() it would call termsEnum.seekExact(term.bytes()) 
> to check the value is exists or not, if not exists the value then return null 
> and return null outer for TermWeight.scorer()
> 
> This is confused to me that the string-match of TermQuery the soccer() return 
> null if the value is not exists. However, the id-match of PointInSetQuery the 
> scorer() dose not return null if the value is not exists, as you can see 
> because DocIdSetBuilder.build() would build a length=1 of NO_MOARE_DOCS of 
> array
> 
> For this info, I check the earliest version of DocIdSetBuilder in the 
> LUCENE-5938, the build() can return null, as the comment says: “This method 
> may return null if no documents were added to this”
> 
> I’m not sure why this changes.
> 
> hacker win7
> hackersw...@gmail.com 
> 
> 
> 
>> On Sep 28, 2020, at 21:06, Adrien Grand > > wrote:
>> 
>> What are you storing in your points? If you are storing numbers, I wonder if 
>> a better approach to this problem might be to start leveraging 
>> IndexOrDocValuesQuery and scorerSupplier() for point-in-set queries like we 
>> did for range queries.
>> 
>> The approach you suggested would help in some cases, but I'm a bit unhappy 
>> that it would be quite fragile, e.g. SubQuery1 AND SubQuery2 might become 
>> faster as we could save evaluating matches of SubQuery2 but SubQuery2 AND 
>> SubQuery1 would still be slow.
>> 
>> On Mon, Sep 28, 2020 at 5:02 AM hacker win7 > > wrote:
>> Hi Lucene developers,
>> 
>> In Lucene-7.7.0, I find that in `PointInSetQuery.createWeight()`, and in the 
>> method `scorer()` after `values.intersect()`, if the `result.bitSet` is 
>> null, then the `result.build()` would use `concat()` to generate a Buffer 
>> and the length is 1. And the element of array is `NO_MORE_DOCS`.
>> 
>> Why not return null in the method `scorer()` if `result.bitSet` is null ?
>> 
>> In the following case:
>> 
>> SubQuery1 AND SubQuery2 AND SubQuery3 …...
>> 
>> BooleanWeight.scorerSupplier() -> 
>> 
>> the first subScorer of query is PointInSetQuery -> 
>> 
>> scorer() ->
>> 
>> after intersect if result.bitSet is null, there is no specific point value 
>> at all then return null ->
>> 
>> 
>> This will terminate early in the BooleanWeight.scoreSupplier() because 
>> subScore is null and the boolean clause is required
>> 
>> The following SubQuery2, SubQuery3, SubQuery4 …. Need not to call 
>> scorerSupplier() to build scorer
>> 
>> 
>> hacker win7
>> hackersw...@gmail.com 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Adrien
>