Re: Extra hit with SQL query and word position in the original file
Teijo <[email protected]> Fri, 24 Mar 2017 15:45:02 +0200
| Newsgroups | gmane.comp.web.mnogosearch.general |
|---|---|
| Message-ID | <[email protected]> |
Hello,
Thank you very much for this information! I'm about to apply it to one
of my subdomains.
Best regards,
Teijo
24.3.2017, 3:59, Alexander Barkov kirjoitti:
> Hello Teijo,
>
>
> On 03/24/2017 01:24 AM, Teijo wrote:
>> Hello,
>>
>> If I search given word with search.cgi, I get correct number of occurences.
>>
>> But if I do it with SQL (no matter in mysql or sqlite3), they show extra
>> occurence. For example, if a given word is in a given original file
>> twice, they tell that there are three occurences. SQL query is almost
>> the same one found in Mnogosearch's manual, except that I am using only
>> one word:
>>
>> SELECT url.url, count(*) AS RANK FROM dict, url WHERE
>> url.rec_id=dict.url_id AND dict.word IN ('word') GROUP BY url.url ORDER
>> BY rank DESC;
>>
>> I'd like to know (by SQL query) position of word in the original file
>> (to use filepos function). There is at least coord column in dict table.
>> Coord contains section id and word's position in relationship to
>> section, if I have understood correctly. How to extract the relative
>> position from coord, or is the position information elsewhere in
>> database? If I disabled all sections, would coord actually contain the
>> absolute position?
>>
>> I'm using "single mode" as to database.
>
> Coord is a 32 bit number.
>
> - The highest 8 bits are section ID (e.g. title, body, etc,
> according to Section commands in indexer.conf)
>
> - The lowest 24 bits are position inside this section.
>
> - The last hit inside each combination (url_id,word,secno) is the
> section length (i.e. the total number of words in this section on)
> in this document.
>
>
> This MySQL query return the information in a readable form:
>
> SELECT url_id,word,coord>>24 AS secno,coord&0xFFFFFF AS pos FROM dict
> WHERE word='mnogosearch' ORDER BY secno,pos;
>
> +--------+-------------+-------+-----+
> | url_id | word | secno | pos |
> --------+-------------+-------+-----+
> | 1 | mnogosearch | 1 | 1 |
> | 1 | mnogosearch | 1 | 14 |
> | 1 | mnogosearch | 1 | 28 |
> | 1 | mnogosearch | 1 | 42 |
> | 1 | mnogosearch | 1 | 76 |
> | 1 | mnogosearch | 1 | 77 |
> | 1 | mnogosearch | 1 | 85 |
> | 1 | mnogosearch | 1 | 105 | <- section 1 length
> | 1 | mnogosearch | 2 | 1 |
> | 1 | mnogosearch | 2 | 6 | <- section 2 length
> | 1 | mnogosearch | 3 | 54 |
> | 1 | mnogosearch | 3 | 69 | <- section 3 length
> | 1 | mnogosearch | 4 | 1 |
> | 1 | mnogosearch | 4 | 11 | <- section 4 length
> | 1 | mnogosearch | 8 | 2 |
> | 1 | mnogosearch | 8 | 4 | <- section 8 length
> +--------+-------------+-------+-----+
>
>
> Lines that are not marked as "section X length" are actual word hits.
>
>
>>
>> Best regards,
>>
>> Teijo
>> _______________________________________________
>> General mailing list
>> [email protected]
>> http://lists.mnogosearch.org/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://lists.mnogosearch.org/listinfo/general